gpt4 book ai didi

java - JMockit 的 @Injectable 用于非 Autowired 字段

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:31 25 4
gpt4 key购买 nike

我有一个类,其中某些字段是@Autowired,有些不是,在测试类中,我想不仅为@Autowired 字段自动注入(inject)值。但自动注入(inject)仅发生在 @Autowired 字段中。

这是一个例子:

public class SimpleObject {
Long id;
@Autowired UsersDAO usersDAO;
}


public class SimpleTest {

@Tested SimpleObject testedSimpleObject;
@Injectable @Mocked UsersDAO usersDAO;
@Injectable Long id = new Long(200);

@Test
public void testId() {
assertNotNull(testedSimpleObject);
assertNotNull(testedSimpleObject.id);
}
}

测试将在第二行失败。 id 字段不是自动注入(inject)的。但是,如果我从 UsersDAO 中删除 @Autowired 注释,测试就会通过。

为什么会这样呢?我该如何克服这个问题?我知道我可以向 id 字段添加一些其他注释,但如果可能的话,我希望在不更改原始源代码的情况下解决它。

最佳答案

这是由于 JMockit 1.14 中的错误造成的,但它已在下一个版本 1.15 中修复(将于 2015 年 2 月晚些时候发布)。

关于java - JMockit 的 @Injectable 用于非 Autowired 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com