PACT против весенних облачных контрактов - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь понять лучший инструмент между PACT и Spring Cloud Contract для реализации тестов Consumer Driver Contract.Я не нахожу четких примеров, чтобы найти плюсы и минусы.

Я хочу реализовать CDCT, и я не использую Spring в своем проекте.Из того, что я понял, я предполагаю, что PACT - это хорошо.

Любая информация или предложения приветствуются.Спасибо.

1 Ответ

0 голосов
/ 27 августа 2018

Spring Cloud Contract позволяет вам определять и тестировать контракты как для REST API, так и для обмена сообщениями.Он предоставляет понятный и простой в использовании статический тип Groovy DSL, а также позволяет определять контракты через yaml.Как с DSL, так и с yaml, определение контрактов очень интуитивно понятно любому, кто знаком со стандартными терминами HTTP / обмена сообщениями, например:

request {
    method PUT()
    url '/fraudcheck'
    body([
           "client.id": $(regex('[0-9]{10}')),
           loanAmount: 99999
    ])
    headers {
        contentType('application/json')
    }
}
response {
    status OK()
    body([
           fraudCheckStatus: "FRAUD",
           "rejection.reason": "Amount too high"
    ])
    headers {
        contentType applicationJson()
    }
}

Тесты на стороне производителя автоматически генерируются SCC и добавляются впроект во время сборки.Если правильная реализация, выполняющая контракты, отсутствует, проект не будет построен и развернут.Если они пройдут, будут созданы и опубликованы заглушки для потребителя вместе с соответствующей версией артефакта.

На стороне потребителя для HTTP SCC предоставляет Stubrunner, который запускает Wiremock (http-сервер в памяти)экземпляр, который предоставляет заглушки ответы на соответствующие запросы.Stubrunner работает с внешними репозиториями артефактов, такими как Nexus и Artifactory, а также с локальными репозиториями m2.

SCC легко интегрируется с SpringBoot, а также интегрируется с Spring Cloud из коробки и может использоваться вместо обнаружения служб во время интеграцииtests.

Он также интегрируется с Pact и позволяет использовать дополнительные функции Pact через ловушки, используя только определения контрактов SCC.

SCC также предоставляет опцию на основе Docker для реализациии тестирование контрактов в технологиях, отличных от JVM.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь участником Spring Cloud Contract.

...