Getting Started
Установите Jest при помощи npm
:
npm install --save-dev jest
Или yarn
:
yarn add --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" } }
Наконец, запустите npm test
и Jest напечатает данное сообщение:
PASS ./sum.test.js ✓ adds 1 + 2 to equal 3 (5ms)
Вы только что успешно написали первый тест с использованием Jest!
Данный тест использует expect
и toBe
для проверки идентичности двух данных значений. Чтобы узнать об остальных вещах, которые можно протестировать с использованием Jest, смотрите использование вычислителей.
Запуск из командной строки #
Jest можно запустить прямо из командной строки (если он глобально указан в PATH
т.е. npm install -g jest
) с разнообразием полезных опций.
Вот так можно запустить Jest для проверки файлов совпадающих с my-test
, используя config.json
в качестве файла конфигурации и для отображения нативного уведомления ОС после завершения:
jest my-test --notify --config=config.json
Если вы хотите узнать больше о запуске jest
через командную строку, обратите внимание на страницу параметры командной строки Jest.
Дополнительная конфигурация #
С использованием Babel #
Для использования Babel, установите пакеты babel-jest
и regenerator-runtime
:
npm install --save-dev babel-jest regenerator-runtime
Примечание: явная установка regenerator-runtime
не требуется если вы используете npm
версии 3 или 4 либо Yarn
Не забудьте добавить файл .babelrc
в корневую папку вашего проекта. Например, если вы используете ES6 и React.js с пресетами babel-preset-es2015
и babel-preset-react
:
{ "presets": ["es2015", "react"] }
Теперь вы можете использовать все возможности ES6 и React синтаксис.
Примечание: Если вы используете более сложную конфигурацию Babel используя
env
опцию в Babel, то имейте в виду, что Jest автоматически укажетNODE_ENV
равнойtest
. Jest не будет использовать значениеdevelopment
как Babel делает по умолчанию, когда явно не задан параметрNODE_ENV
.Note: If you've turned off transpilation of ES2015 modules with the option
{ "modules": false }
, you have to make sure to turn this on in your test enviornment.
{ "presets": [["es2015", { "modules": false }], "react"], "env": { "test": { "presets": [["es2015"], "react"] } } }
Примечание:
babel-jest
автоматически устанавливается при установке Jest и преобразует файлы если в вашем проекте есть существующая конфигурация babel. Для обхода данного поведения, вы можете явно сбросить опциюtransform
в конфигурации:
// package.json { "jest": { "transform": {} } }
С использованием Webpack #
Jest может использоваться в проектах, использующих webpack для управления активами, стилями и компиляцией. webpack действительно вносит некоторые уникальные сложности в сравнении с другими инструментами. Обратитесь к разделу руководство по работе с Webpack для начала работы.
С использованием TypeScript #
Для использования TypeScript, установите пакет ts-jest
и набор типов для Jest.
npm install --save-dev ts-jest @types/jest
затем изменитe package.json
таким образом чтобы раздел jest
выглядел примерно так:
{ "jest": { "transform": { "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js" }, "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", "moduleFileExtensions": [ "ts", "tsx", "js", "json", "jsx" ] } }