Перво-наперво, что такое 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.

использованная литература