[英]Testing a JMS MessageListener
我不确定如何测试消息侦听器。 一件事是我收到的错误。 另一个是我什至不知道我是否走在正确的轨道上。
class TestListenerTest extends Specification {
def "TestListener should receive a message"() {
given:
Message message = Mock ( Message )
TestListener listener = new TestListener()
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory()
JmsTemplate jmsTemplate = new JmsTemplate( connectionFactory )
when:
jmsTemplate.convertAndSend( "TEST_QUEUE_IN", message )
then:
1 * listener.onMessage( message )
}
}
我收到以下错误:
AMQ229031: Unable to validate user from /127.0.0.1:53051. Username: null; SSL certificate subject DN: unavailable;
当我使用connectionFactory.createContext( "userName", "password")
添加JMSContext
时,错误仍然存在,只是使用userName
而不是null
。 但是,我什至不确定我的测试方式是否正确(除非出错)。
关于您的 ActiveMQ 问题,我不能说任何话,因为我以前从未使用过该产品,而且您没有提供MCVE (例如在 GitHub 上)来重现它。
我能说的是,你的 Spock 测试永远不会像这样工作:
given:
TestListener listener = new TestListener()
// (...)
then:
1 * listener.onMessage( message )
您只能验证模拟或间谍上的交互,但您可以像普通的 object 一样实例化listener
器。 所以如果你想检查监听器是否真的被调用了,你需要模拟它或监视一个实例。 此外,在我看来,听众似乎并没有被连接到系统中。 那么它是如何知道该听什么的呢? 也许您已经将接线隐藏在 class TestListener
内部(听起来有点奇怪),但我无法知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.