Вы можете использовать Microprofile Emitter
для отправки сообщений на канал Kafka:
@Inject
@Channel("hello")
Emitter<String> emitter;
По умолчанию, если позади этого излучателя нет Kafka, он создаст сообщение в памяти автобус. Таким образом, образ docker для Kafka не потребуется.
Другим решением будет использование KafkaContainer
из TestContainers для создания одноразового контейнера Kafka для каждого запуска теста.
Вы можете проверить оба примера в репозитории Алексея Сото .
Посмотрите на класс CheckoutProcess
и соответствующий тест компонентов и тест интеграции.