首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring Cloud Test测试Spring Cloud Streams

使用Spring Cloud Test测试Spring Cloud Streams
EN

Stack Overflow用户
提问于 2017-07-16 18:12:17
回答 2查看 276关注 0票数 0

我已经在spring boot应用程序中定义了一些流生产者(@Output)和消费者(@Input),就像我的rest端点一样。现在我想使用以下命令测试两个REST +流

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

首先,我想知道这是否可能。对于REST,我正在自动连接TestRestTemplate,一切都很正常:

代码语言:javascript
复制
@Autowired
private TestRestTemplate restTemplate;

但是对于我正在尝试使用的流:

代码语言:javascript
复制
@ClassRule
public static RabbitTestSupport rabbitTestSupport = new RabbitTestSupport();

这使我能够识别Rabbit是否启动,并且工作正常,但是当我尝试

代码语言:javascript
复制
 @Autowired
private MessageChannel myProducer;

并发送消息,我没有收到任何错误,但消息不会被我的应用程序使用。

我感觉生产者和消费者都是作为我的应用程序的一部分启动的,而不是在解耦的上下文中启动的,因此这是不起作用的。

生产者和消费者在单独的应用程序中工作得很好,所以这似乎与测试配置有关。

有什么想法吗?是否有人在同一个测试中使用@SpringBootTest同时测试了REST和Streams,因为我找不到任何参考资料。

我在这里添加了一个复制器:https://github.com/Salaboy/test-spring-cloud-streams/

一些建议:https://github.com/Salaboy/test-spring-cloud-streams/blob/master/src/main/java/org/salaboy/streams/SampleApplication.java#L40

测试:https://github.com/Salaboy/test-spring-cloud-streams/blob/master/src/test/java/org/salaboy/streams/MyAppStreamsTest.java

它使用以下属性:https://github.com/Salaboy/test-spring-cloud-streams/blob/master/src/test/resources/test-application.properties

如果您能提供任何帮助,我将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-07-16 22:33:58

你能再解释一下messages are not consumed by my apps吗?我之所以问这个问题,是因为不清楚你是如何使用消息的,你的应用程序是在监听还是http端点,然后使用源输出通过代理发送数据?然后你有一个Sink输入来消费它们?

票数 0
EN

Stack Overflow用户

发布于 2021-03-17 22:03:32

我使用这个库通过cucumber/gherkin:https://github.com/RedFroggy/spring-cucumber-messaging在我的应用程序中轻松测试spring cloud消息

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

https://stackoverflow.com/questions/45127365

复制
相关文章

相似问题

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