Getting Started
Встановіть Jest за допомогою yarn
:
yarn add --dev jest
Або npm
:
npm install --save-dev jest
Примітка: документація Jest використовує команди yarn
, проте npm
також спрацює. Ви можете порівняти команди yarn
та npm
в документації yarn.
Let's get started by writing a test for a hypothetical function that adds two numbers. First, create a sum.js
file:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Then, create a file named sum.test.js
. This will contain our actual test:
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
and toBe
для перевірки, що два значення абсолютно ідентичні. Щоб дізнатися про інші речі, які Jest може тестувати, перегляньте Використання Matchers.
Запуск з командного рядка
Ви можете запустити Jest безпосередньо з командного рядка (якщо він доступний глобально у вашому PATH
, наприклад yarn global add jest
або npm install jest --global
) з широким набором корисних параметрів.
Ось як можна запустити Jest для файлів, назва яких відповідає шаблону my-test
, використовуючи config.json
як файл конфігурації та з відображенням нативних сповіщень ОС після запуску:
jest my-test --notify --config=config.json
Щоб дізнатися більше про запуск jest
з командного рядка, відвідайте сторінку параметри командного рядка Jest.
Додаткові налаштування
Згенеруйте основний файл конфігурації
Based on your project, Jest will ask you a few questions and will create a basic configuration file with a short description for each option:
jest --init
Високристання Babel
Для використання Babel, встановіть пакети babel-jest
і regenerator-runtime
:
yarn add --dev babel-jest babel-core regenerator-runtime
Note: If you are using Babel version 7 then you need to install
babel-jest
,babel-core@^7.0.0-bridge.0
and@babel/core
with the following command:
yarn add --dev babel-jest babel-core@^7.0.0-bridge.0 @babel/core regenerator-runtime
You will need to use `babel.config.js` in order to transpile `node_modules`. See https://babeljs.io/docs/en/next/config-files for more information.
You can also see the example in the Jest repository: https://github.com/facebook/jest/tree/54f4d4ebd3d1a11d65962169f493ce41efdd784f/examples/babel-7
*Примітка: безпосереднє встановлення `regenerator-runtime` не обов’язкове, якщо ви використовуєте `npm` 3 або 4 або Yarn*
Не забудьте додати файл [ `.babelrc`](https://babeljs.io/docs/usage/babelrc/) в кореневу папку вашого проекту. Наприклад, якщо ви використовуєте ES6 і [ React.js](https://facebook.github.io/react/) з пресетами [ `babel-preset-env`](https://babeljs.io/docs/plugins/preset-env/) і [ `babel-preset-react`](https://babeljs.io/docs/plugins/preset-react/):
```json
{
"presets": ["env", "react"]
}
Тепер усе готово для використання всіх ES6 функцій і синтаксису React.
Примітка: Якщо ви використовуєте більш складну конфігурацію Babel з
env
блоками, майте на увазі, що Jest автоматично встановитьNODE_ENV
якtest
. Він не буде використовуватиdevelopment
розділ як це робить Babel за замовчуванням, колиNODE_ENV
не вказано.Примітка: якщо ви відключили транспіляцію ES6 модулів параметром
{"modules": false }
, ви повинні переконатися, що ця опція увімкнена в тестовому середовищі.
{
"presets": [["env", {"modules": false}], "react"],
"env": {
"test": {
"presets": [["env"], "react"]
}
}
}
Примітка:
babel-jest
автоматично встановлюється під час встановлення Jest і буде автоматично транслювати файли, якщо конфігурація Babel існує у вашому проекті. Щоб відключити цю поведінку, ви можете явно очистити конфігураційни параметрtransform
:
// package.json
{
"jest": {
"transform": {}
}
}
Використання webpack
Jest може застосовуватися в проектах, які використовують webpack для керування ресурсами, стилями та компіляції коду. webpack кидає певні унікальні виклики для використання інших інструментів. Перегляньте посібник по роботі з webpack щоб почати його використовувати.
Using parcel
Jest може використовуватись в проектах, що використовують parsel-bundler для керування ресурсами, стилями та компіляції, подібної до webpack. Parcel вимагає нульову конфігурацію. Зверніться до офіційної документації , щоб розпочати роботу.
Використання TypeScript
Щоб використовувати TypeScript у своїх тестах, ви можете скористатися ts-jest.
Ви також можете встановити модуль @types/jest
для версії Jest, яку ви використовуєте. Це допоможе забезпечити повним набором під час написання тестів з TypeScript.
Для
@types/*
модулів рекомендується спробувати встановити відповідність версії відповідного модуля. Наприклад, якщо ви використовуєте26.4.0
версіюjest
, тоді використання26.4.x
версії@types/jest
є ідеальним. Взагалі, спробуйте поєднати мажорні (26
) та другорядну (4
) версію якомога точніше.
yarn add --dev @types/jest