我有一些类似于以下内容的代码:
class MyClass {
private JmsTemplate messageSender;
public void doStuff(Domain object domainObject){
... //other stuff
updateClient(domainObject);
}
...
private void updateClient(DomainObject domainObject){
final String payload = buildMessageForObject(domainObject);
messageSender.send(new MessageCreator() {
public Message createMessage(Session sn) throws JMSException {
return sn.createTextMessage(payload);
}
});
}
}
我的JMS模板由Spring框架自动装配。 buildMessageForObject
的逻辑实际上是内联的,但是如果不是,它将是私有的。 我想对消息有效负载字符串进行断言。如果Spring JMSTemplate API具有类似jmsTemplate.sendTextMessage(String text)
之类的东西,那将是很好的,这样我就可以对所模拟的内容进行验证jmsTemplate
在我的测试中,但是我和消息之间似乎存在太多的间接层,并且在JMSTemplate或MessageCreator的API中看不到任何明显有助于我进行重组以使其可测试的东西。我正在使用JUnit和Mockito,但是我不知道Mockito允许我指定创建的MessageCreator
的行为。
在此先感谢您的帮助。