Главная · Каталог задач · Контрактные тесты для API

Готовый сценарий

Контрактные тесты для API

Контрактные тесты API проверяют договор между потребителем и системой, которая формирует ответ или событие. Енотик поможет выделить значимые поля и допустимые изменения. Учебный сервис уведомлений получает order_paid и использует order_id, сумму в целых копейках и валюту. Добавление служебного поля может быть совместимым, а смена типа суммы — нет. Но окончательное правило определяется настоящим парсером потребителя: нельзя объявлять любое дополнительное поле безопасным без проверки его поведения.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Опишите поля и варианты, которые действительно использует потребитель.

02

Сопоставьте тест потребителя с проверкой реального генератора ответа.

03

Проверьте добавление, удаление, смену типа и новые значения перечислений.

Вопросы

Частые вопросы

Как задать учебный контракт события?

«order_paid содержит order_id=ord-17, amount_kopecks=12500, currency=RUB. Уведомление использует эти три поля; trace_id игнорирует». Попросите положительный пример с trace_id и отрицательные без суммы или со строкой вместо числа. Важно проверить реальное чтение сообщения потребителем, а затем генерацию производителем: две согласованные заглушки могут пройти тесты, хотя настоящий код формирует другой формат события.

Почему не стоит сравнивать весь JSON буквально?

Если потребитель не зависит от части полей или порядка ключей, точный снимок создаёт лишние запреты на развитие интерфейса. Но чрезмерно свободный matcher тоже опасен: он может пропустить неверную валюту или отсутствующий обязательный идентификатор. Попросите обосновать каждое проверяемое поле и ограничение. Контракт должен отражать фактическую зависимость клиента, а не случайный пример ответа из документации.

Как проверять производителя API?

Подготовьте известное состояние данных, вызовите настоящую реализацию и сопоставьте ответ с договорёнными ожиданиями. Для событий проверяйте сериализованное сообщение, которое реально публикуется. Укажите инструмент и версии: синтаксис matchers и процедура верификации отличаются. Модель поможет составить сценарий, но один файл контракта без прогона обеих сторон не подтверждает совместимость текущих версий ваших сервисов.

Как вводить несовместимое изменение?

Определите потребителей, добавьте переходный вариант и проверьте миграцию каждого перед удалением старого поля. Новая версия URL или события сама по себе не сообщает, кто ещё использует прежнюю форму. Попросите последовательность этапов и наблюдаемые признаки завершения. Енотик не проверяет все ваши сервисы автоматически; результаты контрактных прогонов и фактическое использование версий нужны для решения о безопасном завершении перехода.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.