Генерировать JSON-схему в дополнение или из контракта

В моем клиентском коде я использую схемы json для проверки ответов json (используя ajv). Я планирую использовать pact-js для генерации пактов против поставщика для тестирования по контракту.

Я хотел бы получить единый источник правды для схемы, которую мой клиентский код использует во время проверки во время выполнения и которую контрактные тесты используют во время проверки договора. Есть ли способ генерировать схемы json (или swagger) из файла pact, или, альтернативно, есть библиотека, которая использует сам файл pact для проверки правильности отдельных ответов http во время выполнения (в отличие от простого использования для проверки контракта в контрактных тестах)?

Я понимаю, что это небольшая проблема, потому что мне нужно было бы сначала запустить клиентский код как часть тестового прогона, чтобы сгенерировать пакты (и, в свою очередь, схему json), поэтому я должен был бы найти хороший рабочий процесс для этого.

Я также понимаю, что контрактные тесты должны уменьшить необходимость проверки во время выполнения, но контрактное тестирование все еще недостаточно полно, чтобы охватить все реальные сценарии.

1 ответ

Короткий ответ - нет, хотя я полагаю, что есть несколько библиотек OSS, которые пытаются решить эту проблему (ни одна из них не является официальной, но я вспоминаю об этом, когда-то появлявшихся на форумах).

В любом случае, хотя намерения хорошие, мы считаем, что задача бесполезна. Эти две технологии являются взаимодополняющими, но, несомненно, со временем будут развиваться, что затруднит управление ими.

Вы можете посмотреть на интеграцию с Swagger несколькими способами, например, замечательные ребята из Atlassian создали несколько таких, которые вы могли бы посмотреть [1] [2].

[1] https://bitbucket.org/atlassian/swagger-request-validator

[2] https://bitbucket.org/atlassian/swagger-mock-validator

[3] https://github.com/pact-foundation/pact-specification/issues/28

Другие вопросы по тегам