Статьи

Тестирование приложений Spring Boot с Kafka и Awaitility

Узнайте больше о тестировании приложений Spring Boot с Kafka и Awaitility!

Это вторая статья в серии Spring Cloud Stream и Kafka . В этом посте рассказывается о различных способах тестирования приложений Spring Boot с использованием EmbeddedKafka и Awaitility.

При тестировании любого синхронного приложения все дело в «звони и жди». Мы вызываем определенный API или конечную точку и ждем ответа. Тест блокирует основной поток выполнения до тех пор, пока API не вернет ответ. После завершения обработки мы получаем ответ и можем сравнить результат с ожидаемым результатом.


Вам также может понравиться:
Кафка с Spring Cloud Stream

Асинхронные приложения тестируются по-разному по сравнению с синхронными или блокирующими приложениями, т.е. нам не нужно блокировать основной поток выполнения. Проще говоря, он не будет ждать ответа от API, и нам нужно вручную запрограммировать тест для удержания выполнения в определенной точке и ожидания результатов от всех неблокирующих операций. На этом этапе мы можем написать утверждения. 

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

Существует несколько способов написания тестов для микро-сервисов Spring Boot — Spring Cloud Stream для подключения к Kafka.

Давайте рассмотрим простой вариант использования для этой цели.

Пример использования

Существует компонент-производитель, который будет отправлять сообщения в тему Kafka. 


Джава