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

How to construct a javax.jms.TextMessage in unit tests?

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

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

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

尝试使用构造函数来实现您的经纪人 TextMessage

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

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

如果代理库不在您的单元测试的类路径中,您也不打算包含它,那么您将别无选择,只能模拟它,因为 JMS API 不带有默认实现。

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