在单元测试中从String构造TextMessage的最佳方法是什么?
我只看到Session#createTextMessage(String),但这需要一个需要进行设置的会话。
另一种方法是模拟TextMessage,但我认为避免模拟数据对象是一种很好的做法。
答案 0 :(得分:7)
尝试使用构造函数来实现代理TextMessage
的实现。
例如,如果您使用 ActiveMQ ,则可以通过默认构造函数创建新的ActiveMQTextMessage
对象,并使用setText
setter设置有效负载。
见http://activemq.apache.org/maven/apidocs/org/apache/activemq/command/ActiveMQTextMessage.html。
如果代理库不在单元测试的类路径中,也不打算包含它,那么除了模拟它之外你没有别的选择,因为JMS API没有默认实现。
在这种情况下使用模拟是完全有效和合理的。