Всем привет,

Сегодня я буду говорить о тестировании вашего кода в Node.js с помощью пакета npm Jest. Jest - это платформа с открытым исходным кодом, созданная Facebook для тестирования приложений на JavaScript. Модульное тестирование - это уровень тестирования программного обеспечения, при котором тестируются отдельные части исходного кода. Единица - это самая маленькая тестируемая часть любого программного обеспечения. Цель тестирования - убедиться, что приложение работает должным образом.

Зачем тестировать?

  • Экономит время
  • Создает надежное программное обеспечение
  • Дает гибкость разработчикам

Чтобы установить Jest, у вас должен быть установлен Node.js. Вы можете скачать Node здесь. После успешной установки выполните следующие действия.

Установка и настройка Jest

First, lets check if Node was installed successfully 
$ node -v
v12.2.0

Мы используем Node версии v12.2.0, если вы не видите номер версии, который означает, что Node.js был установлен неправильно.

Create a new folder from terminal (mkdir jest-testing) and cd into the folder
and run the following command
npm init -y

Мы запускаем новое приложение Node. Будет создан файл package.json.

Примечание. Когда -y передается в NPM, он использует значения по умолчанию вместо того, чтобы задавать вопросы.

Затем установите jest, выполнив следующую команду

npm i --dev jest

После установки jest ваш package.json должен выглядеть следующим образом:

{
"name": "Blog-Jest-Testing",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"jest": "^25.1.0"
}
}
--------------------------------------------------------------------As you see under dependencies, "jest" is mentioned.
Now You need to alter the "scripts" =>  "test":  Instead of "echo \"Error: no test specified\" && exit 1"
Change it to "jest"
"scripts": {
"test": "jest"
},

После этого шага вы готовы к тестированию.

Давайте проверим простую функцию сложения.

  1. Сначала создайте файл add.js (файл функции)
  2. Во-вторых, создайте add.test.js
addition.js 
function add(num1,num2) {
    return num1 + num2
}
module.exports = add;

Примечание: Module.export позволит нам получить доступ к функции добавления в других файлах.

addition.test.js
We first need to require the file addition file
const add = require('./addition')
test("adds 2+2 to equal 4 ", () => {
    expect(add(2,2)).toBe(4);
})

Объяснение: Помимо test.js, шутка выдает как метод под названием test (). Когда мы вызываем test (), мы должны предоставить два аргумента, первый - это строка (имя или мини-описание теста) и функция. Внутри функции jest дает нам библиотеку с именем expect (), мы вызываем ее как функцию и передаем функцию добавления, которая нам нужна из файла add.js. expect () предоставляет нам более 50 методов для использования, мы будем использовать .toBe (), который проверяет равенство. Мы передаем математическое ожидание, равное 4. Теперь, если вы читаете, это похоже на английский. Ожидайте, что значение add (2,2) будет равно 4.

Now when you run this 
npm test

PASS  ./addition.test.js
  ✓ adds 2+2 to equal 4  (3ms)
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        5.108s
Ran all test suites.

Тест пройден, наша функция работает, как ожидалось.

Вот мой репозиторий Github для этого примера.

Удачного кодирования :)