Unit testing 如何在使用模式注册表时对kafka streams dsl进行单元测试

Unit testing 如何在使用模式注册表时对kafka streams dsl进行单元测试,unit-testing,apache-kafka-streams,confluent-schema-registry,Unit Testing,Apache Kafka Streams,Confluent Schema Registry,假设我想为下面的示例编写一个单元测试: 我尝试了以下两种方法,但都不适用于我: 1) 使用TopologyTestDriver 只要不涉及schema注册表,这个类就非常有用。 我尝试使用MockSchemaRegistrCyclient,但没有成功。 即使成功了,也需要我创建自己的序列化程序,这有点违背了模式注册的目的 2) 使用同一项目中定义的EmbeddedSingleNodeKafkaCluster 现在这个类非常方便,似乎已经嵌入了kafka集群和模式注册表。但它似乎在任何人工制品

假设我想为下面的示例编写一个单元测试:

我尝试了以下两种方法,但都不适用于我:

1) 使用TopologyTestDriver

只要不涉及schema注册表,这个类就非常有用。 我尝试使用MockSchemaRegistrCyclient,但没有成功。 即使成功了,也需要我创建自己的序列化程序,这有点违背了模式注册的目的

2) 使用同一项目中定义的EmbeddedSingleNodeKafkaCluster

现在这个类非常方便,似乎已经嵌入了kafka集群和模式注册表。但它似乎在任何人工制品中都不可用。因此,我尝试复制该类,但遇到了进一步的导入问题。 无法下载此特定项目:io.confluent:kafka架构注册表客户端:5.0.0:tests


是否有人能够在上述选项方面取得进展?或者甚至是一个完全不同的解决方案?

为了实现这一点,我最终基于testcontainers创建了一个小型测试库:。作为测试的一部分,启动一个完全可配置的基于docker的Kafka集群(代理、zookeeper和Confluent Schema Registry)。查看单元测试和cucumber测试示例。

这可能会有帮助: