Начало работы
Установите Jest используя ваш любимый менеджер пакетов:
- npm
- Yarn
- pnpm
npm install --save-dev jest
yarn add --dev jest
pnpm add --save-dev jest
Для начала напишем тест для функции, которая складывает два числа. Во-первых создайте файл sum.js
:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Затем создайте файл с именем sum.test.js
. Он будет содержать сам тест:
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
Добавьте следующий раздел в package.json
:
{
"scripts": {
"test": "jest"
}
}
Наконец, запустите yarn test
или npm run test
и Jest выведет это сообщение:
PASS ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)
Вы только что успешно написали первый тест с использованием Jest!
Данный тест использует expect
и toBe
для проверки идентичности двух данных значений. Чтобы узнать об остальных вещах, которые можно протестировать с использованием Jest, смотрите использование сопоставлений.
Запуск из командной строки
Вы можете запустить Jest прямо из командной строки (если он глобально доступен в PATH
, например yarn global add jest
или npm install jest --global
) с множеством полезных опций.
Вот так можно запустить Jest для проверки файлов совпадающих с my-test
, используя config.json
в качестве файла конфигурации и для отображения нативного уведомления ОС после завершения:
jest my-test --notify --config=config.json
Если вы хотите узнать больше о работе с jest
в командной строке, обратите внимание на страницу параметров командной строки Jest.
Дополнительная конфигурация
Создание базового файла конфигурации
Исходя из ваших нужд, Jest задаст вам несколько вопросов и создаст базовый файл конфигурации с кратким описанием для каждой опции:
jest --init
С использованием Babel
Для использования с Babel, установите необходимые зависимости через yarn:
- npm
- Yarn
- pnpm
npm install --save-dev babel-jest @babel/core @babel/preset-env
yarn add --dev babel-jest @babel/core @babel/preset-env
pnpm add --save-dev babel-jest @babel/core @babel/preset-env
Настройте Babel на вашу текущую версию Node Js, создав файл babel.config.js
в корне вашего проекта:
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};
The ideal configuration for Babel will depend on your project. See Babel's docs for more details.
Добавление отдельной конфигурации для Babel только на время запуска Jest
Jest автоматически установит для process.env.NODE_ENV
значение 'test'
если не указано другое. Вы можете использовать эту опцию, чтобы добавить настройки, которые будут использоваться только во время запуска Jest, например:
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.
return {
// ...
};
};