Хотели, но не призывали. На самом деле, с этим макетом не было никакого взаимодействия. Кинезис.Рабочий AWS

#java #amazon-web-services #mocking #mockito #amazon-kinesis

#Ява #amazon-веб-сервисы #осмеяние #мокито #amazon-кинезис

Вопрос:

Я попробовал несколько способов решить это исключение. Это существующий тест в приложении, с которым я никогда не работал.

 import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;  @ExtendWith(MockitoExtension.class) class TeamEventStreamWorkerTest {  @Mock  Worker worker;   @Mock  KinesisClientLibConfiguration kinesisClientLibConfiguration;   @Test  void onApplicationEvent() throws InterruptedException {  TeamEventStreamWorker teamEventStreamWorker = new TeamEventStreamWorker(null, null, null, kinesisClientLibConfiguration, null) {  Worker createDynamoDbStreamsWorker() {  return worker;  }  };   doNothing().when(worker).run();   teamEventStreamWorker.onApplicationEvent(null);   // Wait to make sure worker run is called by the async mechanism  Thread.sleep(1000);   verify(worker).run();   } }  

Я знаю, что проблема в методе worker.run (). рабочий и объект kinesis — это объекты для библиотеки Kinesis от amazon.

Примечание: Самая странная вещь заключается в том, что когда я тестирую на своей локальной машине(IntelliJ), она работает идеально, но когда я нажимаю, и задание Дженкинса начинает пытаться, всегда возвращается одна и та же ошибка.

Ответ №1:

Полученное вами сообщение об исключении сообщает, что worker.run() этот метод никогда не вызывался в рамках вашего теста. Вы можете изменить настройку увеличения времени сна. Тест проходит, как только worker.run() вызывается хотя бы один раз.

Комментарии:

1. Спасибо, Сергей. Я попытался увеличить время сна до 5 секунд, и ошибка та же.

2. Затем вам нужно выполнить пошаговую отладку, чтобы выяснить, почему метод не вызывается.

3. Или вместо использования режима сна используйте библиотеку под названием Awaitility, чтобы не спать без необходимости.