Что такое модульное тестирование?
Модульное тестирование — это процесс разработки программного обеспечения, в котором мельчайшие тестируемые части приложения, называемые модулями, индивидуально и независимо проверяются на предмет правильной работы. Обычно этим занимаются разработчики.
Краткое введение в Jest
Jest — это фреймворк, предназначенный для тестирования кодовой базы JavaScript. Он позволяет писать тестовые примеры для проектов с использованием Babel, TypeScript, Node, React, Angular, Vue и других.
В этой статье мы будем использовать JavaScript (ES6) с NPM для простоты и удобства.
Добавление Jest в ваш проект
Чтобы добавить модуль jest в свой проект, просто запустите
npm i --save-dev jest npm i -g jest
После этого запустите
jest --init
Инструмент задаст вам несколько вопросов, ответьте на них в соответствии с вашими требованиями.
Это создаст файл конфигурации с именем jest.config.js
Создание примера функции
Конечно, нам потребуется что-то для проведения наших тестов. Ниже приведен пример функции для проверки, является ли число четным или нечетным.
const evenOdd = (number) => { if (number % 2 == 0) { return 'even' } return 'odd' }
Я написал это в файле с именем app.js
Создание тестового файла для этой функции
Давайте создадим новую папку с именем __tests__
и добавим в нее новый файл evenOdd.test.js
.
Прежде чем писать тестовые примеры, мы должны увидеть основной синтаксис и сопоставители, необходимые для тестовых случаев.
- describe: у нас есть «описание», которое описывает или собирает тестовые наборы для набора тестов.
- test: указывает на тестовый случай.
- it: псевдоним для тестирования.
- expect: функция, которая получает значение для проверки и связывает другие сопоставители.
- Другие сопоставители (toBe, toBeTruthy, toHaveProperty и т.д.). Чтобы увидеть другие сопоставители, используйте эту ссылку.
Написание первого тестового примера
Теперь давайте откроем файл evenOdd.test.js
и начнем писать наши тестовые случаи.
const evenOdd = require("../app") describe('Testing the Even-Odd Function',()=>{ test('The function should exist',()=>{ expect(evenOdd).toBeTruthy() }) })
Обратите внимание на код выше; тестовый пример проверяет, существует ли функция или нет.
Чтобы запустить это, используйте use jest __tests__/evenOdd.test.js
и обратите внимание на вывод ниже:
Как мы видим, результат тестового примера — ПРОШЕЛ.
Мы можем добавить несколько других тестовых случаев, как показано в коде ниже:
const evenOdd = require("../app") describe('Testing the Even-Odd Function',()=>{ test('The function should exist',()=>{ expect(evenOdd).toBeTruthy() }) test('Should return even on passing an even number',()=>{ expect(evenOdd(8)).toBe('even') }) test('Should return odd on passing an odd number',()=>{ expect(evenOdd(7)).toBe('odd') }) })
Теперь давайте попробуем тестовый пример, который терпит неудачу.
const evenOdd = require("../app") describe('Testing the Even-Odd Function',()=>{ test('The function should exist',()=>{ expect(evenOdd).toBeTruthy() }) test('Should return even on passing an even number',()=>{ expect(evenOdd(8)).toBe('even') }) test('Should return odd on passing an odd number',()=>{ expect(evenOdd(7)).toBe('odd') }) test('Should return invalid number error if a non-digit input is passed',()=>{ expect(evenOdd('neelesh')).toBe('invalid number') }) })
Это было все для этой статьи. Это было написано для новичков, которые не были в модульном тестировании. Jest — отличный модуль, и он часто используется.
Это гораздо больше, включая тестирование асинхронного кода, фиктивные функции и константы, которые мы увидим в следующих статьях.