2016-08-01 18 views
2

Ich versuche, einige Tests für eine Feder Rabbitmq-Anwendung zu schreiben.Frühling Rabbitmq testen - RabbitListenerTestHarness findet keinen Listener

Von documentation fand ich das Beispiel mit RabbitListenerTestHarness.

habe ich einen Test im Frühjahr, die wie folgt aussieht:

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

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

In der Quelle, habe ich eine Bohne, die die Konfiguration rabbitmq erzeugt, die die Anmerkung @RabbitListenerTest(capture = true, spy = true) hat.

Auch in der Quelle Ich habe folgende Verbraucher:

@Component 

public class TestConsumerStub {

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

} 

Aus irgendeinem Grund das Gurtzeug (RabbitListenerTestHarness harness) Objekt aus den Tests nicht geladen im Kontext dieser Verbraucher. Die folgende Variable ist null: RabbitProperties.Listener listener = harness.getSpy("test_consumer2");

Jede Idee, was habe ich verpasst?

Antwort

1

Nach dem Debuggen der RabbitListenerTestHarness Bean habe ich herausgefunden, welches das Problem war. Ich benutzte spring-boot-starter-amqp für Frühlingskaninchen und für spring-rabbit-test schrieb ich ausdrücklich die Version, die der Version von spring-amqp nicht entsprach. Ich aktualisierte spring-boot-starter-parent Version zu 1.4.0, die spring-ampq Version 1.6.1 war, die die gleiche Version meines spring-rabbit-test ist.