Как внедрить или заменить зависимость @Resource?

2

У меня есть SomeService, который использует аннотацию @Resource для EJB TimerService.

@Resource private TimerService timerService;

Как я могу ввести макет TimerService вместо этого TimerService в SomeService?

Теги:
dependency-injection
junit
mocking
ejb

1 ответ

1

Если вы используете mockito: Mockito может вводить аннотированные поля, вы видите: @RunWith (MockitoJUnitRunner.class) против MockitoAnnotations.initMocks (это)

Я бы предложил вместо использования аннотаций в полях использовать аннотированный конструктор. Таким образом, вы можете сделать все введенные поля окончательными, и вы получите сбои сборки при изменении зависимостей вместо ошибок/исключений во время выполнения/теста. И добавленный бонус заключается в том, что вы можете просто вызвать конструктор в своих тестах и таким образом ввести макеты.

  • 0
    Можете ли вы привести пример того, что вы описываете с помощью аннотированного конструктора?
  • 0
    @ user840930 docs.jboss.org/weld/reference/1.1.0.Final/en-US/html/…

Ещё вопросы

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