Перво-наперво, что такое Jest и почему мы должны его использовать? Jest - это библиотека, специально созданная для тестирования кода JavaScript, и в настоящее время это проект с открытым исходным кодом, поддерживаемый Facebook. Написание тестов - важная часть создания приложения. Вы можете сразу отказаться от выполнения каких-либо тестов, но в какой-то момент вам захочется потратить время на их написание, потому что в конечном итоге это сэкономит вам много времени и сэкономит нервы. В этом посте я расскажу о причинах, по которым использование Jest предпочтительнее для тестирования вашего приложения React. Но сначала давайте начнем с процесса установки.
Установка
Примечание: если вы используете приложение create-response-app, вам не нужно устанавливать Jest, поскольку он устанавливается автоматически вместе с ним.
Сначала создайте тестовую папку внутри вашего проекта. Это будет содержать все ваши тестовые файлы.
Затем установите Jest с помощью пряжи:
yarn add --dev jest
или установите Jest с помощью npm:
npm install --save-dev jest
Затем вам нужно будет обновить package.json следующим образом:
{ "scripts": { "test": "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); });
Наконец, вы сможете запускать команды терминала, чтобы начать тестирование.
yarn test
or
npm test
Затем Jest должен распечатать следующее сообщение:
PASS ./sum.test.js ✓ adds 1 + 2 to equal 3 (5ms)
И вот так вы успешно написали свой первый тест с помощью Jest.
Быстро и безопасно
Jest известен своей очень быстрой скоростью. Выполняя сначала предыдущие неудачные тесты и реорганизуя запуски в зависимости от того, сколько времени занимают тестовые файлы, Jest ускоряет работу. Распараллеливание также играет огромную роль в факторе скорости. Теперь вместо того, чтобы вычислять данные последовательно, решая одну проблему за другой, система может разбить проблему на более мелкие части, чтобы каждая из них могла быть решена независимо в одно и то же время.
В следующей части этого поста я подробнее расскажу о различных функциональных возможностях Jest.