1

使用 Spring Cloud Contract 设置多个 Wiremock 存根的最佳方法是什么,这些存根具有不同的主机/端口,并且都在由单个 @Test 方法执行的代码中调用?比如我要测试ServiceA.doSomething(),这个方法调用ServiceB.doSomethingElse()和ConsulClient.getKVValue()。创建 WireMockRestServiceServer 的一个实例没有问题,但我还没有弄清楚如何创建第二个以在指向不同基本 URL 的同一测试中使用。我尝试这样做的原因是因为我需要将我们对 Consul 的调用存根,并且我需要将这些请求始终发送到http://localhost:8500,从而我的其他请求通过负载发送平衡的 RestTemplate。我希望我已经清楚地解释了我的情况。

4

1 回答 1

2

就 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

于 2016-12-20T16:14:29.810 回答