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