Уважаемые, мне нужно добавить некоторые интеграционные тесты ко многим ресурсам в проекте, над которым мы работаем, который использует Kafka, но до сих пор у меня не было возможности запустить только один экземпляр Embedded Kafka для выполнения всех тестов или для проверки всего Kafka. часть, чтобы сосредоточить тесты только на нашем коде, полагая, что интеграция будет в порядке.
Итак, у меня есть несколько вопросов:
- Какой правильный / предпочтительный способ установить эти тесты? Чтобы издеваться над частью Кафки или Вставить экземпляр?
- Как я могу встроить его и разделить этот экземпляр между всеми тестами, чтобы избежать отбрасывания экземпляра и повторного создания без необходимости?
- Как смоделировать всю часть кафки, симулируя, что она работает нормально? Так что я могу сфокусировать тест на нашем коде, а не на других аспектах?
Большое спасибо.
Что я уже пробовал:
Аннотировать тесты, которые нуждаются в kafka с @EmbeddedKafka - он работает, но генерирует случайную ошибку, потому что в некоторых случаях экземпляр отбрасывается и приводит к некоторому FileNotFound для других экземпляров
Создайте класс с помощью @EmbeddedKafka и создайте тесты, использующие kafka, расширяемые из этого класса - результат аналогичен подходу, описанному выше
Попытка подделать KafkaClient - все еще не хватает бобов или деталей - в результате:
Вызывается: org.springframework.context.ApplicationContextException:
Не удалось запустить бин
'Org.springframework.kafka.config.internalKafkaListenerEndpointRegistry';
Вложенное исключение - java.lang.IllegalStateException: group.id не найден
в пользовательском конфиге, свойствах контейнера или @KafkaListener
аннотаций; group.id требуется, когда используется групповое управление.
Другие детали: