Spring Cloud Contract: тестирование контракта для нескольких потребителей с разными или частично разными ожиданиями - PullRequest
0 голосов
/ 15 ноября 2018

Мы проводим потребительское тестирование с использованием Spring-Cloud-Contract.У меня два потребителя (услуги) и один производитель услуг.Все они находятся в разных репозиториях.У производителя есть API, например - / get / product / 123.У каждого потребителя свои требования.Итак, я создал две папки и поместил файл getProduct.groovy в каждую папку.Это выглядит примерно так:

contracts │ ├── consumerA │ │ ├── GetProduct.groovy │ ├── consumerB │ │ ├── GetProduct.groovy

Оба файла groovy содержат разные тела и генерируют заглушки в соответствующих папках.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Добавление большего количества к @OlgaMaciaszek,

Существует возможность указать consumerName, которое должно совпадать с именем подпапки в папке производителей /contract.

Можно пропустить предоставление consumerName, используя имя приложения, указанное в application.yaml.Но это также означает, что подпапка в папке контракта производителя должна совпадать с именем приложения потребителя.

0 голосов
/ 16 ноября 2018

Чтобы функция stubsPerConsumer работала, вам необходимо убедиться, что вы установили ее флаг в значение true в настройке StubRunner в своих интеграционных тестах, например:

@AutoConfigureStubRunner(ids = "yourids", repositoryRoot = "yourrepository",
stubsMode = StubRunnerProperties.StubsMode.REMOTE,stubsPerConsumer = true)
...