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" ] } }