Spring RabbitMQ 测试 - RabbitListenerTestHarness 找不到任何监听器

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

我正在尝试为 Spring RabbitMQ 应用程序编写一些测试。

文档,我找到了使用 RabbitListenerTestHarness 的示例。

我在春天创建了一个测试,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyMain.class)
public class MyClassTest {

    @Test
    public void myTest(){
        RabbitProperties.Listener listener = harness.getSpy("test_consumer2");
    }
}

在源代码中,我有一个为rabbitmq创建配置的bean,它带有注释

@RabbitListenerTest(capture = true, spy = true)

此外,在源中我有以下消费者:

@Component

公共类 TestConsumerStub {

@RabbitListener(
        id = "test_consumer2",
        queues = "my_queue"
)
public void testHandler(){

}

由于某种原因,测试中的线束 (

RabbitListenerTestHarness harness
) 对象未加载到消费者的上下文中。以下变量为空:
RabbitProperties.Listener listener = harness.getSpy("test_consumer2");

知道我错过了什么吗?

spring rabbitmq spring-test spring-rabbit
2个回答
1
投票

调试

RabbitListenerTestHarness
bean 后,我找出了问题所在。我使用
spring-boot-starter-amqp
表示 Spring Rabbit,对于
spring-rabbit-test
,我明确编写了版本,该版本与
spring-amqp
的版本不匹配。我将
spring-boot-starter-parent
版本更新为
1.4.0
,正在安装
spring-ampq
版本
1.6.1
,这与我的
spring-rabbit-test
版本相同。


0
投票

对于所有调试相同问题的人:检查您的侦听器是否已指定

id

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