我试图为我的 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] 收到一些关于我的消息的日志
您在上面的评论中限定了您真正想要的东西
我正在尝试进行测试,检查我的消息是否会被正确反序列化
根据所使用的 JMS 库,消息转换可能会以不同的方式处理。因此,您可以在发送之前使用不同的调用来访问
Message
。
注意
convertAndSend(destination, message)
有一个替代方案 convertAndSend(destination, message, messagePostProcessor)
您可以在测试中调用它,并在回调中您将可以访问转换后的
Message