单元测试JMS有效负载

时间:2020-04-03 13:03:38

标签: java testing mockito jms spring-jms

我有一些类似于以下内容的代码:

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的行为。

在此先感谢您的帮助。

0 个答案:

没有答案