无限弹簧-jms测试

问题描述 投票:0回答:1

我试图为我的 springJmsListner 编写测试,但它没完没了。我认为它与上下文缓存有关,但我不确定。我正在使用 testContainers


    @Autowired
    private lateinit var jmsTemplate: JmsTemplate

    @Autowired
    private lateinit var jackson: ObjectMapper

    @Autowired
    private lateinit var jdbcTemplate: JdbcTemplate

    @Test
    fun testJmsListner() {

        val message = "message"
        val queue = "queue"


        jmsTemplate.convertAndSend(queue, message)

        val sentMessage: Message? = jmsTemplate.receive(queue)
        if (sentMessage != null) {
            assertTrue(sentMessage::class.java.isInstance(TextMessage::class.java))
        }

        assertEquals(message, (sentMessage as TextMessage).text)

在日志中我看到另一个线程中的最后一个操作,但我不知道如何适合这个

2024-05-06T16:22:58.646+03:00 INFO 10455 --- [任务] [测试工作人员] .j.a.l.p.testJmsListner :在 1.746 秒内启动 testJmsListner (进程运行 6.678) 2024-05-06T16:22:58.909+03:00 INFO 10455 --- [tasks] [ntContainer#0-1] 收到一些关于我的消息的日志

kotlin testing spring-jms testcontainers
1个回答
0
投票

您在上面的评论中限定了您真正想要的东西

我正在尝试进行测试,检查我的消息是否会被正确反序列化

根据所使用的 JMS 库,消息转换可能会以不同的方式处理。因此,您可以在发送之前使用不同的调用来访问

Message

注意

convertAndSend(destination, message)
有一个替代方案
convertAndSend(destination, message, messagePostProcessor)

您可以在测试中调用它,并在回调中您将可以访问转换后的

Message

© www.soinside.com 2019 - 2024. All rights reserved.