Jest — это среда тестирования JavaScript, которая используется для тестирования кода JavaScript. Это популярный выбор для тестирования приложений React. Jest — это библиотека JavaScript для создания, запуска и структурирования тестов. Он поставляется в виде пакета NPM и может быть установлен в любом проекте JavaScript.

Это позволяет вам писать тесты с помощью доступного, знакомого и многофункционального API, который быстро дает вам результаты. Некоторые из главных особенностей Jest включают в себя:

  • Моментальное тестирование
  • Мок-функции
  • Покрытие кода
  • Тестовое покрытие
  • Встроенные отчеты о покрытии кода
  • Параллельный тестовый запуск

Сегодня мы увидим простое тестирование.

Монтаж:

Инициализирует новый проект Node.js файлом package.json по умолчанию. Флаг -y пропускает интерактивное приглашение и использует значения по умолчанию для всех полей в файле package.json.

npm init -y
npm install --save-dev jest

Флаг — save-dev используется для сохранения пакета в качестве зависимости разработки в разделе devDependencies файла package.json. Это означает, что пакет требуется только для целей разработки, а не для производства. Флаг сохранения используется для сохранения пакета в качестве производственной зависимости в разделе зависимостей файла package.json. Это означает, что пакет необходим как для целей разработки, так и для производства.

В файл package.json мы должны добавить:

"scripts": {
    "test": "jest --coverage"
  },

Флаг покрытия используется для создания отчета о покрытии кода тестами. Отчет показывает, какая часть кода покрыта тестами. Отчет о покрытии включает такую ​​информацию, как процент охваченных строк, процент охваченных функций и процент охваченных ветвей.

Код

sum.js

function sum(a,b){
    return a+b;
}

module.exports = sum

сумма.test.js

Jest ищет файлы с расширением .test.js или .spec.js в папке __tests__ или в любой папке с именем test. Это поведение Jest по умолчанию. Вы также можете настроить Jest для поиска файлов с другим соглашением об именах или в другой папке. Соглашение об именах используется для идентификации тестовых файлов и их отделения от других файлов в проекте.

const sum = require("./sum");

test("properly adds two numbers", () => {
  expect(sum(1, 2)).toBe(3);
});

Объяснять:

  • Первый блок кода определяет функцию sum, которая принимает два аргумента и возвращает их сумму. Вторая строка экспортирует функцию суммы, чтобы ее можно было использовать в других файлах.
  • Второй блок кода импортирует функцию суммы из файла sum.js с помощью функции require().
  • Затем он определяет тестовый пример, используя функцию test(), предоставляемую Jest.
  • Тестовый пример проверяет, возвращает ли функция sum() правильный результат при передаче двух чисел.
  • Функция expect() используется для подтверждения результатов работы функции sum(). В этом случае он проверяет, равен ли вывод 3, используя сопоставитель toBe().

Другой пример:

вычесть.js

function Subtract(a, b) {
  return a - b;
}

module.exports = Subtract;

вычесть.test.js

const subtract = require("./subtract");

test("properly subtract two numbers", () => {
  expect(subtract(2, 1)).toBe(1);
});

Запуск теста:

npm test 

Результаты теста Jest отображаются в окне терминала/консоли. Результаты показывают, какие тесты прошли, а какие нет. Результаты также показывают, сколько времени потребовалось для запуска каждого теста. Jest предоставляет сводку результатов теста в конце тестового прогона. Сводка включает количество пройденных и непройденных тестов, а также общее время, затраченное на выполнение всех тестов.

Гитхаб: https://github.com/jps27cse

Linkedin: https://www.linkedin.com/in/jps27cse