我想使用 Spring-Integration 框架对应用程序执行 JUnit 测试。我要测试的是:
- 如果连接到我发送的通道的服务激活器正确处理了消息
- 如果在出现任何错误的情况下调用了适当的消息错误处理过程
我正在使用 JMocikt 来验证是否调用了预期的方法。我通过调用send
消息通道开始测试。
问题是:我如何等待消息处理结束?Spring 集成产生了几个线程,并在消息通道上发送立即返回。我已经尝试过的是:
- 使用
IntegrationMBeanExporter.stopActiveComponents(false, 0)
- 由于线程中断而失败 - 尝试链接服务激活器(第一:实际调用,第二:完成通知) - 它失败,因为在这种情况下,被测服务激活器返回
null
,它不能被链接。另外,我不喜欢它,因为我必须更改被测的 SI 配置。
有什么线索吗?
请不要评论不执行真实单元,而是集成测试等。我知道我在做什么。