JS: Express
Теория: Тесты
Функциональное тестирование — это тестирование ПО в целях проверки реализуемости функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям.
В отношении сайтов такое тестирование можно провести, делая HTTP-запросы к соответствующим обработчикам и проверяя их ответ. Чтобы это было возможно, требуется небольшая дисциплина кода. В случае Express она выражается в том, что определение приложения отделяется от его запуска.
Такое разделение позволяет тестам самостоятельно запускать приложение и работать с ним как с обычной функцией. Вам не нужно отдельно поднимать сервер перед запуском тестов и останавливать его после.
Vitest и Supertest
Для запуска тестов используют тестовый фреймворк, например Vitest, а HTTP-запросы к приложению выполняют через Supertest.
Supertest возвращает объект response, в котором можно проверить статус, заголовки и тело ответа. Vitest дает структуру тестов (describe, it/test) и ассерты (expect).
В package.json обычно достаточно такого скрипта:
Этого хватает, чтобы писать функциональные тесты для HTTP-интерфейса. Но важно помнить: такие тесты не проверяют, как страница реально выглядит и работает в браузере. Для этого нужны приёмочные (e2e) тесты, они в этом курсе не рассматриваются.
Superagent
Supertest построен поверх Superagent. Именно Superagent отвечает за формирование HTTP-запросов.
