Использование схемы json в рамках pact для тестирования контракта - PullRequest
0 голосов
/ 02 ноября 2018

Я недавно начал испытывать пакт, и мне интересно, есть ли у кого-нибудь из вас идеи, поддерживают ли пакт схемы Json!

Я опишу поток. Предположим, у вас есть два микросервиса:

  • Микросервис А - потребитель
  • Микросервис Б - Провайдер

Поставщик предоставляет Api - в основном запрос POST и ожидает явную полезную нагрузку тела json (некоторые поля обязательны для заполнения). Допустим,

{
  "id": "123",
  "name": "Bob"
}

ИД и имя - обязательные свойства.

Предположим теперь, что провайдер изменил свое поведение, ожидая того же полезного содержимого json, но с дополнительным свойством:

{
  "id": "123",
  "name": "Bob"
  "extraProperty": "newProperty"
}

У меня вопрос, есть ли в любом случае, чтобы обнаружить такой разрыв контракта с помощью структуры пакта? если нет, то что вы думаете, это лучший способ проверить такой сценарий.

Спасибо за помощь.

1 Ответ

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

У меня вопрос, есть ли в любом случае обнаружить такой разрыв контракта с использованием структуры пакта?

Конечно - это то, для чего предназначен Пакт!

Если extraProperty является новым обязательным полем (в дополнение к id и name), то когда тесты провайдера выполняются с контрактами, сгенерированными потребителем (ями), которые не знают о новом поле, тогда ваш API не будет работать так, как ожидалось, и ваши тесты pact не пройдут.

Что касается другого вашего вопроса:

Мне интересно, есть ли у кого-нибудь из вас идеи, поддерживают ли пакт схемы Json!

Я не уверен, что вы имеете в виду - мы, безусловно, поддерживаем форматы JSON. Если вы имеете в виду JSON Schema , тогда да, но вам все равно нужно написать тесты (см. https://docs.pact.io/faq#why-doesnt-pact-use-json-schema).

...