使用JMS和Spring进行java测试
在我的系统中,我使用Spring和JMS(HornetQ)
在系统上运行测试时,我的一些测试会将JMS事件发送到消息传递队列。JMS为每个消息打开一个线程并运行它们。然而,我必须等待JMS线程结束,然后才能继续进行下一个测试
因为主测试线程不知道与测试相关的另一个线程正在后台运行,所以它退出并在JMS线程完成之前进入下一个测试。这让我的生活变成了地狱,因为我需要编写JMS钩子,这样我就可以等待JMS线程完成,然后才能继续。无论我如何尝试,我都很难抓住所有这些线索
我真正想做的是让我抛出到消息队列的事件在运行测试本身的同一线程中运行。这样,消息处理必须在测试本身完成之前完成。我该怎么做
--编辑后-- 我问这个问题已经有一段时间了,但仍然没有答案。真的有可能没有人在测试环境中实现了如此简单的jms解决方案
# 1 楼答案
如果您想进行一些异步测试,请查看
Awaitility
我用过它,而且它做得很好:)