@ Injectable в JMockit для не-проводных полей

1

У меня есть класс, в котором некоторые поля @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 ответ

1
Лучший ответ

Это связано с ошибкой в JMockit 1.14, но она уже исправлена для следующего выпуска, 1.15 (ожидается позднее в феврале /2015).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню