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;
Потім, cтворіть файл з назвою 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
and toBe
для перевірки, що два значення абсолютно ідентичні. Щоб дізнатися про інші речі, які Jest може тестувати, перегляньте Використання Matchers.
Запуск з командного рядка #
Ви можете запустити 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
блоками, майте на увазі, що Jest автоматично встановитьNODE_ENV
якtest
. Він не буде використовувати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
потім змініть свій 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" ] } }