2016-12-20 8 views
0

Каков наилучший способ установки нескольких контуров Wiremock с использованием Spring Cloud Contract, которые имеют разные хосты/порты и оба вызываются в коде, используемом одним методом @Test? Например, я хочу проверить ServiceA.doSomething(), и этот метод вызывает ServiceB.doSomethingElse() и ConsulClient.getKVValue(). У меня нет проблем с созданием одного экземпляра WireMockRestServiceServer, но я не понял, как создать второй, который будет использоваться в том же тесте, который указывает на другой базовый URL. Причина, по которой я пытаюсь это сделать, заключается в том, что мне нужно отключить вызовы, которые мы делаем для Консула, и мне эти запросы нужно всегда отправлять в http://localhost:8500, в результате чего мои другие запросы отправляются через сбалансированный баланс нагрузки RestTemplate. Надеюсь, я ясно объяснил свой сценарий.Использование Spring Cloud Contract, как я могу настроить несколько контуров Wiremock для разных хостов/портов?

ответ

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