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.
Додаткові налаштування
Високристання 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.0and@babel/corewith 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