1
我有一個類,其中一些字段是@Autowired
,有些不是,在測試類中,我希望不僅爲@Autowired
字段自動注入值。但自動注入只發生在@Autowired
字段中。JMockit's @Injectable for non-Autowired fields
下面是一個例子:
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字段不是自動注入的。 但是,如果我從UsersDAO
中刪除@Autowired
註釋,則測試通過。
爲什麼會這樣呢? 我該如何克服這個問題? 據我所知,我可以添加一些其他註釋到ID字段,但我想,如果可能的話,解決它,而無需更改原始源代碼。