Skip to content
14 / 15

Как тестировать код, работающий с брокером сообщений?

Тесты раскладываются на три уровня. Модульные: обработчик — обычная функция от сообщения; брокер подменяется фейком, и проверяется бизнес-логика, идемпотентность (тот же вход дважды — тот же результат) и классификация ошибок. Интеграционные: настоящий брокер в контейнере (Testcontainers) проверяет то, что фейк не проверит — сериализацию, партиционирование по ключу, фиксацию оффсетов, поведение при повторной доставке и попадание в очередь недоставленных. Контрактные: схема сообщения проверяется на совместимость с зарегистрированной версией — это ловит несовместимое изменение формата до выкатки, а не у потребителя в проде. Отдельная категория — детерминированность: тесты с брокером асинхронны, поэтому нужны ожидания по условию с таймаутом вместо фиксированных пауз, уникальные имена топиков и групп на каждый тест и явная очистка. Самое ценное в интеграционных тестах — не «сообщение дошло», а поведение при повторе и при ошибке.

Как тестировать код, работающий с брокером сообщений? | JScriptiser