Введение в тесты в Nest
После правки сервиса или страницы легко сломать ответ, не заметив сразу: ручная проверка каждого адреса отнимает время, а регресс всплывает позже на другом шаге. Повтор одних и тех же действий вручную не масштабируется, когда классов становится больше.
Автоматические проверки запускают
сценарий в NodeJS и сравнивают
результат с ожиданием. Для Nest
удобно собирать нужные классы
в изолированном контейнере через
пакет @nestjs/testing,
а сами сценарии описывать в Vitest:
блоки describe и it,
сравнение через expect
именно этот раннер выполняет.
Отдельно проверяют сервис, страницу,
канал и защитник без поднятия всего
приложения. Сквозной сценарий поднимает
экземпляр приложения и бьёт в адрес
через supertest, как клиент
по HTTP. Зависимости и репозиторий
базы можно подменить объектом, чтобы
не тянуть PostgreSQL в каждый прогон.
Дальше разберём сборку тестового модуля, подмену провайдера, проверку одного метода сервиса, контроллера, канала, защитника, сквозной запрос с телом и заглушку репозитория.