Java 如何为JMS使用者创建集成测试
我正在使用ActiveMQ Artemis从一个微服务发送一个Java 如何为JMS使用者创建集成测试,java,spring-boot,junit,activemq-artemis,Java,Spring Boot,Junit,Activemq Artemis,我正在使用ActiveMQ Artemis从一个微服务发送一个对象,并使用@JMSListener在另一个微服务中接收该对象。我想测试一下接收器。如何模拟接收到的对象?我已经尝试过,但由于比较失败,测试失败,无法获取null @RunWith(SpringRunner.class) @SpringBootTest public class ConsumerTests { @Autowired JmsTemplate jmsTemplate; @Test pub
对象
,并使用@JMSListener
在另一个微服务中接收该对象。我想测试一下接收器。如何模拟接收到的对象
?我已经尝试过,但由于比较失败,测试失败,无法获取null
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerTests {
@Autowired
JmsTemplate jmsTemplate;
@Test
public void foo() throws JMSException {
this.jmsTemplate.convertAndSend("foo", "A");
this.jmsTemplate.setReceiveTimeout(10_000);
assertThat(this.jmsTemplate.receiveAndConvert("foo")).isEqualTo("A");
}
}
如果您从receiveAndConvert
中获得null
,则表明未实际收到消息。如果您从receiveAndConvert
获得null
,表明消息未实际收到,是否可以确认消息确实已成功发送(即队列foo
的消息计数大于0)。您能否确认消息确实已成功发送(即队列foo
的消息计数大于0)?