簡體   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