使用具有不同主机/端口的Spring Cloud Contract设置多个Wiremock存根的最佳方法是什么,并且在由单个@Test方法执行的代码中调用?例如,我想测试ServiceA.doSomething(),此方法调用ServiceB.doSomethingElse()和ConsulClient.getKVValue()。我创建WireMockRestServiceServer的一个实例没有问题,但我还没想出如何创建第二个在同一测试中使用的指向不同基本URL的实例。我尝试这样做的原因是因为我需要将我们对Consul进行的调用存根,我需要将这些请求始终发送到http://localhost:8500,我的其他请求将通过加载发送平衡的RestTemplate。我希望我已经清楚地解释了我的情景。
答案 0 :(得分:1)
就Stub Runner而言,每个依赖项都可以拥有一个HttpStub服务器 - 您只需根据依赖项的字符串为字符串提供不同的端口。示例@AutoConfigureStubRunner(ids = {"com.example:beer-api-producer:+:stubs:8090", "a.b:artifact:0.0.1.RELEASE:prod-stubs:9999"})
。您可以按照我们在此处描述的负载均衡内容进行存根 - http://cloud.spring.io/spring-cloud-contract/1.0.x/spring-cloud-contract.html#_stub_runner_spring_cloud