有没有办法在JUnit测试中使用JMS?

时间:2016-09-29 06:32:48

标签: java junit jboss jms cdi

我想使用JMS运行JUnit测试。是否有可能让JUnit测试在JBoss或CDI容器之类的Application Server之外使用JMS?

2 个答案:

答案 0 :(得分:3)

如果发送和使用消息与JMS完全分离,您可以嘲笑它。

例如:您可以拥有一个实现类似“IMyClassSender”的接口的类。在实际代码(非junit)中,所有这个类都将消息提交给JMS。在junit中,使用一个接受输入的类来实现IMyClassSender,而如果提交给JMS,它会将它传递给您的使用者类。

或者,如果您使用的是活动的mq:http://activemq.apache.org/how-to-unit-test-jms-code.html

答案 1 :(得分:0)

您也可以重新考虑使用应用程序服务器 - Arquillian(http://arquillian.org)允许在您选择的JavaEE环境中执行单元和集成测试 - 并自行管理应用服务器生命周期。