Поддерживает ли Spring Cloud Contract последовательные зависимости между микросервисами?

Допустим, у нас есть 3 микросервиса A, B и C. Мы хотим протестировать функциональность микросервиса A, которая зависит от микросервиса B. Однако ответ микросервиса B также зависит от микросервиса C. Поддерживает ли Spring Cloud Contract такие случаи ? Потому что, читая документацию, я понимаю, что когда создается контракт для взаимодействия между A-B (и вставляется в B), автоматически сгенерированный тест в B не работает, поскольку он ждет ответа от C, чтобы предоставить ответ. И даже если у нас есть другой контракт на взаимодействие B-C, это означает, что мы должны модифицировать автосгенерированный тест в B, чтобы тест прошел успешно. Есть ли способ при создании контракта для A-B указать, что это также зависит от взаимодействия B-C?


person billkar    schedule 29.05.2017    source источник


Ответы (1)


Я думаю, что вы читаете больше в документации, чем на самом деле. Контракт не утверждается, когда вы тестируете потребителя, он просто генерирует ответы-заглушки, соответствующие контракту. Итак, в вашем сценарии для тестирования службы A вам нужны только заглушки из службы B. На самом деле вам даже не нужны контракты, и вам не нужно ничего из службы C. Интересно, вы действительно пробовали это, и что-то не так? т работать?

person Dave Syer    schedule 29.05.2017
comment
Дэйв прав. Что вам нужно сделать, это создать 2 отдельных контракта. Для службы B и для службы C. Таким образом, вы можете создать 2 набора заглушек - для службы B и для службы C. Затем вы можете проверить интеграции между A с B и B с C. Помните, что контрактное тестирование в принципе НЕ касается тестирование функциональности. Речь идет о проверке корректности API. - person Marcin Grzejszczak; 29.05.2017