Spring boot Spring cloud stream-集成测试,订户don';Don’不要听事情
我正在努力用SpringCloudStream设置集成测试 假设我需要测试以下集成流Spring boot Spring cloud stream-集成测试,订户don';Don’不要听事情,spring-boot,spock,spring-cloud-stream,Spring Boot,Spock,Spring Cloud Stream,我正在努力用SpringCloudStream设置集成测试 假设我需要测试以下集成流 创建具有POST请求的实体 使用MessageBroker在内部发布事件 在同一微服务中收集事件并更新内部读取模型 向读取模型端点发出GET请求,并检查读取模型是否已更新 更新读取模型是异步工作的。它在运行应用程序时工作正常(收集并使用事件),在运行集成测试时不工作。标记为@StreamListener的方法在运行测试时不会被调用,应用程序不会事件连接到MessageBroker(在我的例子中是kafka) 我
@StreamListener
的方法在运行测试时不会被调用,应用程序不会事件连接到MessageBroker(在我的例子中是kafka)
我使用了springcloudstreamtestsupport
和MessageCollector
,但它让我有机会检查事件是否已发布并验证其有效负载
我需要的是检查应用程序是否收集了事件并对其做出了正确的反应
我错过了什么?在测试运行期间,应用程序是否订阅了任何类型的测试活页夹?使用测试活页夹时,默认情况下,测试活页夹将覆盖Kafka活页夹 要在与单元测试相同的项目中运行集成测试,必须通过排除
TestSupportBinderAutoConfiguration
将测试配置为使用真正的绑定器
有关全局排除,请参阅
有关单个测试中的排除,请参阅
最后,您还可以使用spring.autoconfigure.exclude
属性控制要排除的自动配置类的列表
e、 g.在
@TestPropertySource
中,测试绑定器是否有办法将事件传递给订阅者?计划在更复杂的测试绑定器(未来版本)上进行一些工作。当前唯一可以做的事情是在测试用例中向@StreamListener
的消息通道(例如Sink.input()
)发送消息。