我试图通过设置Kafka服务器并使用生产者发送消息来本地测试我的代码,但我想知道是否有一种方法可以为这段代码编写单元测试(测试是否消费者收到的消息是正确的。)
val consumerSettings = ConsumerSettings(system,
new ByteArrayDeserializer, new StringDeserializer)
.withBootstrapServers("localhost:9092")
.withGroupId("group1")
.withProperty(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest")
val done = Consumer.committableSource(consumerSettings,
Subscriptions.topics("topic1"))
.map { msg =>
msg.committableOffset.commitScaladsl()
}
.runWith(Sink.ignore)
答案 0 :(得分:1)
您可以使用以下工具测试代码:
TestSink.probe
,可以检查和控制流元素(即消息)的需求。 Akka Streams Kafka项目在其自己的测试中使用上述内容。看看IntegrationSpec
,您可以根据自己的需要进行调整。