2016-08-01 2 views
2

spring rabbitmq 어플리케이션에 대한 몇 가지 테스트를 작성하려고합니다.Spring rabbitmq 테스트 - RabbitListenerTestHarness가 리스너를 찾지 못했습니다.

documentation에서 RabbitListenerTestHarness를 사용하여 예제를 발견했습니다. 소스에서

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

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

, 내가 주석 @RabbitListenerTest(capture = true, spy = true)을 가지고 rabbitmq에 구성을 생성하는 콩이 있습니다

나는처럼 보이는 봄에 테스트를 만들었습니다.

또한, 소스에서 나는 다음과 소비자가 :

@Component 

공용 클래스 TestConsumerStub {어떤 이유

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

} 

을, 하네스는 시험에서 (RabbitListenerTestHarness harness) 객체는로드되지 소비자의 맥락에서 다음 변수는 null입니다. RabbitProperties.Listener listener = harness.getSpy("test_consumer2");

내가 무엇을 놓쳤는가?

답변

1

RabbitListenerTestHarness 빈을 디버깅 한 후 어느 것이 문제인지 알아 냈습니다. 나는 봄 토끼를 위해서 spring-boot-starter-amqp을 사용했고, spring-rabbit-test에 대해서는 spring-amqp 버전과 일치하지 않는 버전을 명시 적으로 쓰고있었습니다. spring-boot-starter-parent 버전을 1.4.0으로 업데이트하여 spring-rabbit-test과 동일한 버전 인 spring-ampq 버전 1.6.1을 설치했습니다.

관련 문제