Как выполнить модульное тестирование потоков Кафки DSL при использовании схемы реестра - PullRequest
2 голосов
/ 11 марта 2019

Допустим, я хочу написать модульный тест для показанного здесь примера:

https://github.com/confluentinc/kafka-streams-examples/blob/5.1.2-post/src/main/java/io/confluent/examples/streams/WikipediaFeedAvroLambdaExample.java

Я испробовал следующие методы, оба не сработали для меня:

1) Использовать TopologyTestDriver.

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

2) Используйте EmbeddedSingleNodeKafkaCluster, определенный в том же проекте.

https://github.com/confluentinc/kafka-streams-examples/blob/5.1.2-post/src/test/java/io/confluent/examples/streams/kafka/EmbeddedSingleNodeKafkaCluster.java

Теперь этот класс действительно удобен и, кажется, имеет встроенный кластер kafka и реестр схем.Но, похоже, его нет ни в одном артефакте.Следовательно, я попытался скопировать класс, но столкнулся с дальнейшими проблемами импорта.Невозможно загрузить этот конкретный артефакт: io.confluent: kafka-schema-registry-client: 5.0.0: тесты

Кто-нибудь смог добиться прогресса с вышеупомянутыми параметрами?Или даже совсем другое решение?

1 Ответ

0 голосов
/ 17 июня 2019

Для этого я закончил делать эту маленькую библиотеку тестов, основанную на testcontainers: https://github.com/vspiliop/embedded-kafka-cluster. Запускает полностью настраиваемый кластер Kafka на основе докера (брокер, zookeeper и Confluent Schema Registry) как часть ваших тестов.Посмотрите на тестовые образцы и тесты на огурец.

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