繁体   English   中英

编写测试以验证 jms 侦听器中收到的 msg (Spring-Boot)

[英]Writing tests to verify received msg in jms listener (Spring-Boot)

我想为以下内容编写测试;

  1. src/main有一个名为state-info-1的侦听器。

  2. 它对它获取的任何消息进行一些更改,并在 activemq 主题state-info-2上发布新消息。

  3. 我将构建一个虚拟消息并发布到 activemq 主题state-info-1

  4. 最后验证,接收到的关于state-info-2消息与我预期的一样。

我的听众就像;

@JmsListener(destination = "state-info-1", containerFactory = "connFactory")
public void receiveMessage(Message payload) {
    // Do Stuff and Publish to state-info-2
}

我可以为此编写测试吗? 或者我必须以其他方式做到这一点?

另外,我看了这个: https : //github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-activemq/src/test/java/sample/activemq /SampleActiveMqTests.java

但这不是我所期望的。

任何帮助或朝正确方向推动就足够了。

感谢您的时间。

@SpringBootApplication
public class So42803627Application {

    public static void main(String[] args) {
        SpringApplication.run(So42803627Application.class, args);
    }

    @Autowired
    private JmsTemplate jmsTemplate;

    @JmsListener(destination = "foo")
    public void handle(String in) {
        this.jmsTemplate.convertAndSend("bar", in.toUpperCase());
    }

}

@RunWith(SpringRunner.class)
@SpringBootTest
public class So42803627ApplicationTests {

    @Autowired
    private JmsTemplate jmsTemplate;

    @Test
    public void test() {
        this.jmsTemplate.convertAndSend("foo", "Hello, world!");
        this.jmsTemplate.setReceiveTimeout(10_000);
        assertThat(this.jmsTemplate.receiveAndConvert("bar")).isEqualTo("HELLO, WORLD!");
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM