У меня есть класс, в котором некоторые поля: @Autowired
, а некоторые нет, а в тестовом классе я хотел бы автоматически вводить значения не только для полей @Autowired
. Но автоматическая инъекция происходит только для полей @Autowired
.JMockit's @Injectable для неавторизованных полей
Вот пример:
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, но я хотел бы, если возможно, решить ее без изменения исходного исходного кода.