我有一个类,其中一些字段是@Autowired,而有些字段不是,在测试类中,我希望不仅为@Autowired字段自动注入值。但是,自动注入只发生在@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字段不是自动注入的。但是,如果我从@Autowired中删除UsersDAO注释,测试就会通过。
为什么会这样呢?我怎样才能克服这个问题呢?我知道我可以向id字段添加一些其他注释,但如果可能的话,我希望在不更改原始源代码的情况下解决它。
发布于 2015-02-09 13:48:44
这是由于JMockit 1.14中的一个bug,但它已经修复了下一个版本1.15 (定于2015年2月晚些时候发布)。
https://stackoverflow.com/questions/28393883
复制相似问题