如何在单元测试中构造javax.jms.TextMessage?

时间:2016-01-18 10:13:24

标签: java unit-testing jms

在单元测试中从String构造TextMessage的最佳方法是什么?

我只看到Session#createTextMessage(String),但这需要一个需要进行设置的会话。

另一种方法是模拟TextMessage,但我认为避免模拟数据对象是一种很好的做法。

1 个答案:

答案 0 :(得分:7)

尝试使用构造函数来实现代理TextMessage的实现。

例如,如果您使用 ActiveMQ ,则可以通过默认构造函数创建新的ActiveMQTextMessage对象,并使用setText setter设置有效负载。

http://activemq.apache.org/maven/apidocs/org/apache/activemq/command/ActiveMQTextMessage.html

如果代理库不在单元测试的类路径中,也不打算包含它,那么除了模拟它之外你没有别的选择,因为JMS API没有默认实现。

在这种情况下使用模拟是完全有效和合理的。