Java 如何为JMS使用者创建集成测试

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

我正在使用ActiveMQ Artemis从一个微服务发送一个
对象
,并使用
@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)?