我想使用JMS运行JUnit测试。是否有可能让JUnit测试在JBoss或CDI容器之类的Application Server之外使用JMS?
答案 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环境中执行单元和集成测试 - 并自行管理应用服务器生命周期。