我正在使用 Spring Integration 和 RabbitMq 开发一个应用程序,我想知道如何测试它(集成测试)。
我认为 SoapUI 可以是一个很好的解决方案,但它不支持 RAbbitMq,hermesjms.com 支持 Qpid,所以我认为做一个新插件来支持 Rabbitmq 可能很容易,但它比我想象的要困难该项目有点旧并且有一堆依赖项。 所以我开始考虑自己做点什么,比如 python 中的 DSL,像这样:
tests = [{ 'name': 'start',
'routing_key': 'returned',
'payload' : "xxxxx",
'timeOut' : '10000',
'expected': '',
'threads': '1'
},
{ 'name': 'second',.....
]
然后使用 Pika 执行操作并检查结果。
我知道它很愚蠢,而 sopaui 又大又棒,但至少它可以让我做一些小测试。
你会推荐什么?
最佳答案
RabbitMQ 为您提供了一个 Web 前端(所谓的管理 View 1)。
所以:你到底想测试什么?比方说,您想验证 requestChannel 上的传入消息是否到达服务并返回,您可以直接自动连接 channel (即 @Autowired 私有(private) channel requestChannel;) 并将消息放入其中。
但是,只有当您正确设计架构时:流程的每个步骤都可以使用模拟或经过特殊修改的注入(inject)依赖项进行测试。
除了您自己的组件之外,这些可测试性还适用于 spring 组件(接口(interface))。比方说,您已经实现了自己的路由器:测试和验证输入和输出。变压器也是如此。
如果你试图验证“bic picture”,你将不得不重建完整的场景。但是对于非持久性和非持久性队列和消息,这不应该如此复杂。
还有什么要测试的吗?
关于spring - 测试 RabbitMQ 和 Spring 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092385/