У меня есть класс, в котором некоторые поля @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, но я хотел бы, по возможности, решить ее без изменения исходного исходного кода.
Это связано с ошибкой в JMockit 1.14, но она уже исправлена для следующего выпуска, 1.15 (ожидается позднее в феврале /2015).