我有一个需要单元测试的生产者应用程序。我不想为此目的启动Zookeeper和Kafka服务器。有没有更简单的方法来使用 Mockito 测试它?
如果你不想启动 Kafka 和 Zookeeper,你可以使用 Kafka 附带的 Mock 客户端来伪造从 Kafka 集群发送和接收消息:
- 模拟制作人:http://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/MockProducer.html
- 模拟消费者:http://kafka.apache.org/10/javadoc/org/apache/kafka/clients/consumer/MockConsumer.html
对于这样的测试,我使用了 spring-kafka-test 库中的 EmbeddedKafka(即使我没有在我的应用程序中使用 Spring,这被证明是设置单元测试的最简单方法(。这里有一个例子: https://www.codenotfound.com/spring-kafka-embedded-unit-test-example.html
它实际上在相同的过程中为你启动了一个 Kafka 和 Zookeeper,所以你并没有真正嘲笑任何东西,所以你不需要为此做任何嘲笑。我用的是普通的JUnit。