Mockito - @SpyBean на компоненте с методом аннотации @RabbitListener создает другого потребителя - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть класс интеграционного теста с аннотацией @SpyBean над одной зависимостью и тестирующим количеством вызовов с использованием verify, однако @SpyBean добавляет другого потребителя очереди и метод verify, отвечая, что с mock не было взаимодействий.

Я уже пробовал некоторые варианты Mocks, Spies, MockBeans.Когда я @Spy проблемный бин, у меня есть один потребитель, но нет взаимодействия с макетом.@SpyBean создает другого потребителя очереди, но в одной среде тесты проходят (у меня нет прав ни одного вызова, поэтому, вероятно, очередь используется фиктивным), а в другой среде очередь используется реальным (?) Классом, поэтому метод не вызывается.В обеих ситуациях я вижу, что проблемный метод вызывается выводом журнала внутри метода слушателя.У меня нет идей, как ее решить ...

@Service 
public class MyDependency {

  @RabbitListener(queues = "someQueue")
  public void handleError(Message<?> message) {
      log.info(">>>>>> I'M HERE <<<<<<<<");
      handleFail(message);
  }
}

В тестовом классе у меня есть

public class IntegrationTest {

  @SpyBean
  MyDependency myDependency;

  @Test
  void shouldPass() {   
    //some code... 
    verify(myDependency, times(2)).handleError(any());
  }
}

Ожидаемый результат: у меня есть два вызова метода handleError и нетсозданы дополнительные потребители Фактический: создан дополнительный потребитель для очереди (получено два) и нет итераций с mock, метод не вызывается (mockio говорит, что), но я вижу «>>> Я здесь <<<» в журналах</p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...