Сделать пакт-Тест не удался в поле дополнительного поставщика

#pact

Вопрос:

Поведение по умолчанию для теста на пакт заключается в том, чтобы не допустить сбоя, когда поставщик добавляет поля в сообщение, которое не указано в контракте потребителя, например:

Потребитель ожидает:

 {
  "foo": "bar"
}
 

Поставщик предоставляет:

 {
  "foo": "bar",
  "hello": "world"
}
 

Проверка пактного контракта с использованием вышеупомянутых сообщений будет успешной. Есть ли способ заставить их потерпеть неудачу? Например, какой-то «строгий»режим, требующий точного совпадения сообщений?

Ответ №1:

Нет, это невозможно в соответствии с документами пакта:

Вы не можете ожидать, что поле не будет присутствовать в ответе

В соответствии с законом Postel поставщик может возвращать поля, которые потребитель просто проигнорирует. У поставщика может быть договор с другим потребителем, который требует этих полей, поэтому ваш потребитель не может указывать поставщику, что ему не следует делать. Он может только указать, что он должен делать.