Что такое Jest и как его установить
Урок знакомит с фреймворком Jest, показывает установку и базовые команды запуска.
Jest — это тестовый фреймворк для JavaScript: он находит тестовые файлы, запускает их, сравнивает результаты с ожиданиями и показывает понятный отчёт.
Почему именно Jest
Jest популярен, потому что работает «из коробки»: в одном пакете — раннер тестов, библиотека матчеров (expect), моки и измерение покрытия. Не нужно собирать набор библиотек вручную. Изначально его создали в Facebook для React, но Jest отлично подходит для любого JS/TS-кода: утилит, бэкенда на Node, библиотек.
Установка
Jest ставится как dev-зависимость (нужен только при разработке, не в продакшене). В пустой папке проекта:
npm init -y
npm install --save-dev jestФлаг --save-dev (короткая форма -D) добавляет Jest в devDependencies в package.json.
Скрипт запуска в package.json
Чтобы не писать длинные команды, добавьте скрипт test:
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"test": "jest",
"test:watch": "jest --watch"
},
"devDependencies": {
"jest": "^29.0.0"
}
}Теперь тесты запускаются командой npm test.
Как запускать
Есть несколько способов:
# через npm-скрипт
npm test
# напрямую без установки в PATH
npx jest
# запустить только один файл
npx jest math.test.js
# watch-режим: перезапуск при изменении файлов
npx jest --watchnpx запускает локально установленный Jest, не требуя глобальной установки. Watch-режим особенно удобен: Jest следит за файлами и перезапускает только затронутые тесты, давая мгновенную обратную связь во время разработки.
Какие файлы Jest считает тестами
По умолчанию Jest подхватывает файлы, которые:
- лежат в папке
__tests__, либо - заканчиваются на
.test.jsили.spec.js.
Например, тесты для math.js обычно кладут рядом в math.test.js.
Первый прогон
Если тестов ещё нет, Jest честно сообщит об этом. После добавления первого теста (следующий урок) вывод будет примерно таким:
PASS ./math.test.js
✓ складывает два числа (2 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Time: 0.5 sИтог
- Jest — это «всё в одном»: раннер, матчеры, моки и покрытие.
- Устанавливается как dev-зависимость:
npm install --save-dev jest. - Запуск:
npm test,npx jest, watch-режим —npx jest --watch. - Тестовые файлы — это
*.test.js,*.spec.jsили содержимое__tests__/.