#pact
Вопрос:
Поведение по умолчанию для теста на пакт заключается в том, чтобы не допустить сбоя, когда поставщик добавляет поля в сообщение, которое не указано в контракте потребителя, например:
Потребитель ожидает:
{
"foo": "bar"
}
Поставщик предоставляет:
{
"foo": "bar",
"hello": "world"
}
Проверка пактного контракта с использованием вышеупомянутых сообщений будет успешной. Есть ли способ заставить их потерпеть неудачу? Например, какой-то «строгий»режим, требующий точного совпадения сообщений?
Ответ №1:
Нет, это невозможно в соответствии с документами пакта:
Вы не можете ожидать, что поле не будет присутствовать в ответе
В соответствии с законом Postel поставщик может возвращать поля, которые потребитель просто проигнорирует. У поставщика может быть договор с другим потребителем, который требует этих полей, поэтому ваш потребитель не может указывать поставщику, что ему не следует делать. Он может только указать, что он должен делать.