【问题标题】:How to Mock send method in MessageChannel of SpringBoot in Wiremock Integration Testing如何在Wiremock集成测试中模拟SpringBoot的MessageChannel中的发送方法
【发布时间】:2021-10-11 05:28:07
【问题描述】:
我正在为我的应用程序使用 Spring Boot Java。应用程序正在使用 MessageChannel 向 Kafka 发送一些消息。例如:this.messageChannel.send(message)。
我想在集成测试中模拟这个消息通道调用,这样消息就不会发送到 Kafka。目前使用 Wiremock 进行 Spring 集成测试。
请建议我模拟 MessageChannel 发送方法的方法
【问题讨论】:
标签:
java
spring-boot
apache-kafka
integration-testing
wiremock
【解决方案1】:
如果您想使用 Kafka MessageChannel 进行集成测试,请使用spring-kafka-test 的嵌入式 Kafka 服务器...
Mocks 通常不用于集成测试。也许你的意思是假货?
在这种情况下,您需要创建自己的 implements MessageChannel 类并用您期望的行为覆盖 send 函数,然后将其传递给您所指的类的构造函数 this在你的问题中。
或者,如果您使用 WireMock 并打算将消息send 发送到 HTTP 端点而不是 Kafka,听起来您想要 spring-integration-http。