我有一个类,其中一些字段是@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 字段中添加一些其他注释,但如果可能的话,我希望在不更改原始源代码的情况下解决它。