2016-12-20 4 views
0

Wie können mehrere Wiremock-Stubs mit Spring Cloud Contract am besten eingerichtet werden, die verschiedene Hosts/Ports haben und beide in Code aufgerufen werden, der von einer einzelnen @Test-Methode ausgeführt wird? Zum Beispiel möchte ich ServiceA.doSomething() testen, und diese Methode ruft ServiceB.doSomethingElse() und ConsulClient.getKVValue() auf. Ich habe kein Problem damit, eine Instanz von WireMockRestServiceServer zu erstellen, aber ich habe nicht herausgefunden, wie man eine zweite Instanz erstellt, die innerhalb desselben Tests verwendet wird, der auf eine andere Basis-URL verweist. Der Grund, warum ich das versuche, ist, weil ich Anrufe, die wir an Consul machen, abbestellen muss, und ich brauche diese Anfragen immer an http://localhost:8500 zu senden, wobei meine anderen Anfragen über die Last-ausgeglichene RestTemplate gesendet werden. Ich hoffe, ich habe mein Szenario klar erklärt.Wie kann ich mithilfe von Spring Cloud Contract mehrere Wiremock-Stubs für verschiedene Hosts/Ports einrichten?

Antwort

1

In Bezug auf Stub Runner können Sie einen HttpStub-Server pro Abhängigkeit haben - Sie geben nur einen anderen Port für die string-basierte Notation Ihrer Abhängigkeit. Beispiel @AutoConfigureStubRunner(ids = {"com.example:beer-api-producer:+:stubs:8090", "a.b:artifact:0.0.1.RELEASE:prod-stubs:9999"}). Sie können die Last ausgleichen, wie wir hier beschreiben - http://cloud.spring.io/spring-cloud-contract/1.0.x/spring-cloud-contract.html#_stub_runner_spring_cloud

Verwandte Themen