Тестирование Node API
Докажите, что ваши маршруты Express работают — автоматически, при каждом изменении — с помощью Jest и Supertest
- писать и запускать набор тестов с Jest (
describe,test,expect); - управлять приложением Express через Supertest — без порта и без
listen; - проверять коды состояния, тела JSON и заголовки реальных маршрутов;
- подменять (mock) медленную или внешнюю зависимость (например, базу данных), чтобы тесты оставались быстрыми и предсказуемыми;
- сбрасывать тестовые данные между тестами, чтобы каждый выполнялся изолированно.
1. Зачем автоматизировать тесты API?
Вы уже умеете строить маршруты с Express. Но как узнать, что они всё ещё работают после рефакторинга, добавления функции или обновления зависимости? Проверять приложение вручную медленно, легко забыть и невозможно повторить в точности. Автоматический тест кодирует проверку один раз и выполняет её всегда.
Аналогия. Ручное тестирование — это как попробовать суп один раз и надеяться, что всю неделю он не изменится. Автоматический тест — это дымовой датчик на кухне: он следит постоянно и кричит в тот же миг, когда что-то подгорает, в комнате вы или нет.
Тесты API находятся на удобном уровне. Они шире, чем модульный тест (который проверяет одну функцию изолированно), но дешевле и быстрее полноценного сквозного теста (который управляет настоящим браузером на развёрнутом сервере). Тест API загружает ваше приложение Express app в память, выстреливает по нему HTTP-запросом и проверяет ответ. Достаточно быстро, чтобы запускать сотни раз в день; достаточно реалистично, чтобы ловить ошибки маршрутизации, кодов состояния и формы тела.