TLDR; Если вы используете Swagger для разработки своего API, вы можете использовать Dredd для тестирования своего веб-API без написания единого тестового примера.

В наши дни TDD/BDD становится довольно популярным, и в Интернете полно сообщений, в которых люди рекомендуют этот стиль. Но если ваш API имеет много конечных точек, он становится довольно громоздким и удваивает вашу работу (хотя в долгосрочной перспективе это окупается).

С тех пор, как я начал разрабатывать API с помощью Swagger (OpenAPI), я всегда чувствовал, что объема информации в спецификации Swagger должно быть достаточно для автоматической генерации тестовых случаев для вашего веб-API или, по крайней мере, для автоматического тестирования ваших конечных точек.

В поисках такого инструмента я наткнулся на Dredd. Для меня это была мечта.

Как это работает

В двух словах, Dredd делает следующее:

  1. Берет ваш документ с описанием API,
  2. создает ожидания на основе запросов и ответов, задокументированных в документе,
  3. делает запросы к тестируемому API,
  4. проверяет соответствие ответов API задокументированным ответам,
  5. сообщает результаты.

Его так просто использовать:

npm установить -g дредд

dredd swagger.yaml http://localhost:3000

Вы также можете добавить его файл конфигурации в свой проект:

Дредд инициализирует

дредд

Затем он будет запускать тесты:

Dredd предлагает гораздо больше, включая непрерывную интеграцию, создание отчетов и т. д. Подробную информацию см. в официальных документах:

https://dredd.readthedocs.io/en/latest/