Первый простой тест

Mocha — это популярный фреймворк для тестирования JavaScript кода, который предоставляет простой, но мощный интерфейс для написания и выполнения тестов. Он используется в основном для модульных тестов, но подходит и для функциональных тестов. В этом разделе рассмотрим, как написать первый простой тест с использованием Mocha.

Для начала необходимо установить Mocha. Это можно сделать с помощью менеджера пакетов npm. Выполните следующую команду в вашем проекте:

npm install --save-dev mocha

Эта команда установит Mocha как зависимость для разработки. После установки Mocha можно запускать через командную строку, указывая, какие тесты нужно выполнить.

Структура тестов в Mocha

Mocha предоставляет несколько ключевых функций для организации тестов:

  • describe — группирует тесты.
  • it — описывает конкретный тестовый случай.
  • before и after — выполняются до и после всех тестов в группе соответственно.
  • beforeEach и afterEach — выполняются до и после каждого теста.

Тесты пишутся в виде JavaScript функций, которые выполняются Mocha в процессе тестирования.

Простой пример теста

Предположим, необходимо протестировать простую функцию, которая возвращает сумму двух чисел. Начнем с создания файла с функцией, которую будем тестировать.

Создадим файл sum.js:

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

module.exports = sum;

Теперь создадим тест для этой функции. Для этого создадим файл test/sum.test.js:

const assert = require('assert');
const sum = require('../sum');

describe('Функция sum', function () {
  it('должна правильно складывать два числа', function () {
    assert.strictEqual(sum(2, 3), 5);
  });

  it('должна правильно складывать отрицательные числа', function () {
    assert.strictEqual(sum(-2, -3), -5);
  });

  it('должна возвращать правильный результат при сложении с нулем', function () {
    assert.strictEqual(sum(2, 0), 2);
  });
});

Объяснение тестов

  1. describe — группа тестов, которые проверяют поведение функции sum. Этот блок позволяет логически сгруппировать тесты, чтобы код был более организованным.

  2. it — описывает один тестовый случай. В каждом таком блоке мы пишем конкретное условие, которое хотим проверить. Например, в первом тесте мы проверяем, что результат сложения 2 и 3 будет равен 5.

  3. assert — используется для проверки, соответствует ли результат ожиданиям. В данном случае используется метод strictEqual, который сравнивает два значения и выбрасывает ошибку, если они не равны.

Запуск тестов

Для выполнения тестов нужно запустить Mocha в командной строке:

npx mocha test/sum.test.js

Если тесты написаны корректно, Mocha выведет информацию о прохождении тестов:

  Функция sum
    ✓ должна правильно складывать два числа
    ✓ должна правильно складывать отрицательные числа
    ✓ должна возвращать правильный результат при сложении с нулем

  3 passing (10ms)

Структура файлов и каталогов

Для организации тестов принято использовать следующую структуру файлов:

/project
  /node_modules
  /src
    sum.js
  /test
    sum.test.js
  package.json

Важные моменты

  • Mocha поддерживает различные assertion библиотеки, такие как assert, expect, should. В примере использована стандартная библиотека assert, которая входит в Node.js.
  • Mocha позволяет запускать тесты в разных средах, например, в браузере или в Node.js.
  • Тесты в Mocha могут быть асинхронными, и для этого нужно использовать дополнительные механизмы, такие как done или промисы.

Резюме

В этом примере показано, как установить Mocha, написать простой тест для функции сложения чисел и запустить тесты. Mocha предоставляет мощный и гибкий инструментарий для написания тестов в JavaScript. Создание тестов с помощью Mocha — это эффективный способ убедиться в корректности работы кода и избежать ошибок в будущем.