У меня есть код, который выглядит следующим образом:
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. Лог c для buildMessageForObject
фактически встроен, но если бы его не было, он был бы закрытым. Что я хотел бы сделать, это сделать утверждения для строки полезной нагрузки сообщения. Было бы неплохо, если бы в Spring JMSTemplate API было что-то вроде jmsTemplate.sendTextMessage(String text)
, чтобы я мог проводить проверки на поддельном jmsTemplate
в моих тестах, но, кажется, слишком много уровней косвенности между мной и сообщением, и я не вижу ничего в API для JMSTemplate или MessageCreator, который, очевидно, помогает мне реструктурировать его, чтобы сделать его тестируемым. Я использую JUnit и Mockito, но я не знаю, каким образом Mockito позволил бы мне указать поведение созданных MessageCreator
.
Заранее благодарен за любую помощь.