首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的spring-cloud-stream测试配置还启动了另一个类中的rabbitMQ侦听器?

为什么我的spring-cloud-stream测试配置还启动了另一个类中的rabbitMQ侦听器?
EN

Stack Overflow用户
提问于 2019-01-11 00:00:10
回答 1查看 115关注 0票数 0

我正在尝试做一个简单的spring-cloud-stream单元测试来验证流之间的连接;基本上,处理程序可以从一个流中读取并写入到另一个流中。这部分运行得很好。问题是,应用程序的其他部分也在启动;即rabbitMQ侦听器。在另一个类中有一个方法(除了我正在测试的那个),它有一个@RabbitListener。这就是被调用的方法。我在本地机器上运行了rabbit,用于本地开发测试。但我不希望在测试范围内调用它。

spring-cloud-stream测试文档here示例有

代码语言:javascript
复制
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)

我认为是@SpringBootTest启动了整个配置,包括RabbitMQ侦听器。我删除了webEnvironment参数,但这并没有什么不同。

目前,解决方法是将spring.rabbitmq.listener.simple.auto-startup: false放在application.yml中,但出于各种原因,我不想继续这样做,其中一个原因是我可能希望在某一时刻对rabbitlistener进行单元测试,尽管是在适当限制的测试上下文中。

我们使用的是spring-cloud-stream和spring-cloud-stream-test-support的2.0.1版本,尽管这似乎是一个更基本的spring配置问题,我不知道如何限制上下文。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-11 00:21:40

可以在autoStartup属性中使用属性占位符

代码语言:javascript
复制
spring.rabbitmq.listener.simple.auto-startup: ${auto.start:true}

然后在测试用例中使用@TestPropertySource将其设置为false。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54132497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档