我试图为spring rabbitmq应用程序编写一些测试。
从documentation,我找到了使用RabbitListenerTestHarness的示例。
我在春天创建了一个看起来像的测试:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyMain.class)
public class MyClassTest {
@Test
public void myTest(){
RabbitProperties.Listener listener = harness.getSpy("test_consumer2");
}
}
在源代码中,我有一个bean,它为rabbitmq创建了具有注释@RabbitListenerTest(capture = true, spy = true)
的配置。
另外,在源代码中我有以下消费者:
@Component
公共类TestConsumerStub {
@RabbitListener(
id = "test_consumer2",
queues = "my_queue"
)
public void testHandler(){
}
由于某种原因,测试中的线束(RabbitListenerTestHarness harness
)对象未加载到使用者的上下文中。以下变量为null:
RabbitProperties.Listener listener = harness.getSpy("test_consumer2");
知道我错过了什么吗?
答案 0 :(得分:1)
在调试RabbitListenerTestHarness
bean之后,我发现了哪个问题。我正在使用spring-boot-starter-amqp
用于春兔和spring-rabbit-test
我明确地编写了与spring-amqp
版本不匹配的版本。我将spring-boot-starter-parent
版本更新为1.4.0
正在安装spring-ampq
版本1.6.1
,该版本与spring-rabbit-test
的版本相同。