Класс Java (называемый ServiceCaller
), который я хочу проверить, имеет следующее:
@Autowired @Qualifier(value="serviceA")
SomeService serviceA;
@Autowired @Qualifier(value="serviceB")
SomeService serviceB;
(есть метод doWork()
, который проверяет условие и вызывает либо A, либо B).
Как я вставляю макет каждой службы в соответствующую переменную?
У моего Junit есть следующее:
@InjectMocks ServiceCaller classUnderTest = new ServiceCaller();
@Mock SomeService mockServiceA;
@Mock SomeService mockServiceB;
Тем не менее, когда я запускаю свои тесты, чтобы проверить, что служба A/B вызвана в правильном состоянии, я получаю нулевые указатели, поскольку макет не был введен.
Очевидно, что это связано с несколькими зависимостями от одного и того же интерфейса (SomeService
). Есть ли способ указать квалификатор при объявлении mock-сервиса? Или мне нужно иметь сеттеры для зависимостей и ставить старомодный способ?