Как проверить, был ли @KafkaListener вызван в интеграционном тесте? - PullRequest
0 голосов
/ 23 октября 2019

Я хотел бы написать интеграционный тест для всего потока kafka.

В моем производственном коде у меня есть:

@KafkaListener(topics = "myTopic")
public void listen(@Payload String payload) {
    log.debug("processing payload: '{}' ", payload);
    // business logic here
}

В моем тестовом коде я использую KafkaProducer<String, String> producer; для отправки сообщенийк конкретной теме.

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

Есть ли лучший способ дождаться обработки @KafkaListener?

1 Ответ

0 голосов
/ 23 октября 2019

Если ваш слушатель вызывает какой-либо сервис, вы можете добавить макет для этого сервиса и убедиться, что он вызван.

Также вы можете заключить слушателя в тестовый случай и добавить защелку обратного отсчета.

См. этот ответ для примера.

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