2 回答
TA贡献1865条经验 获得超7个赞
我认为这里存在一个更大的问题,所以我会尝试将其阐述出来,希望能够提供一些清晰的信息
能够使用 ServiceActivator 注释错误处理程序方法是框架提供的契约,这意味着它的测试是我们的责任。此外,您使用的机制甚至不是来自 Spring Cloud Stream,而是来自 Spring Integration。但无论如何,我质疑应用程序是否应该测试它,因为您无法在应用程序级别以任何方式影响它,因为它不是您的功能。再说一次,这是我的观点,我很想知道你的想法。
在 Spring Cloud Stream 3.0.0.RC1(及后续版本)中,我们实际上已经弃用了
spring-cloud-stream-test-support
Gary提到的新测试绑定器。其原因记录在我刚刚提供的链接中,但请随时跟进问题。尽管它的用法有相当详细的记录,但这里是我们自己使用它的测试用例之一,供您参考。尽管参考文档中的示例显示了基于函数的消息处理程序,但它的工作方式与基于注释的消息处理程序(这就是您正在使用的)相同。说到基于注释的编程模型,请参阅我们刚刚发布的以下博客(查找更多内容,因为它们正在工作中),其中我们阐述了为什么我们要放弃基于注释的编程模型,我认为您也应该开始考虑更改您的代码。毕竟,所有更改几乎相当于删除所有注释并稍微更改消息处理程序方法的签名以表示为函数 bean
https://spring.io/blog/2019/10/14/spring-cloud-stream-demystified-and-simplified
https://spring.io/blog/2019/10/17/spring-cloud-stream-functional-and-reactive
https://spring.io/blog/2019/10/25/spring-cloud-stream-and-spring-integration
我之所以这么说的原因有很多,但是您上面的代码和您表达的担忧再次提醒我为什么我们要放弃这种编程模型。
我将在这里停下来,因为我相信这里有很多东西需要消化,但鉴于我刚才所说的内容,请随意跟进更尖锐的问题。
添加回答
举报