JavaScript: Автоматические тесты при помощи chai и mocha (спецификация)

JavaScriptКомментариев нет

Рассмотрим методику тестирования, которая входит в BDD — Behavior Driven Development.

Разберем основной синтаксис фреймворка mocha и chai на примере:

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

it — создает тест, в качестве параметра указываем описание того что конкретно тестируем и функцию в которой будет произведен непосредственно тест.

assert.equal(val1, val2) — функция которая выполняет тест, она проверяет равно ли значение val1(результат работы тестируемой функции) значению val2. assert.equal — не единственная функция для тестирования, остальные будут рассмотрены ниже.

testFunctionName(2, 4) — тестируемая функция в которую(для примера) передаем 2 параметра (2 и 4). При правильной ее работе, она должна вернуть 8.

 

В примерах для тестирования будет использовать следующие библиотеки:

  • Mocha — эта библиотека содержит общие функции для тестирования, включая describe и it.
  • Chai — библиотека поддерживает разнообразные функции для проверок.Например: assert.equal

 

Перейдем сразу к делу и разберем рабочий пример:

HTML страница index.html

JS файл test.js

Создайте данные файлы у себя локально и поэкспериментируйте.

Дополнительные возможности mocha

Кроме простого создания тестов, нам возможно понадобиться произведение каких либо действия в различное время прохождения теста. Для этого есть специальные функции:

before/after — выполняются до/после запуска тестов.

beforeEach/afterEach — выполняются до/после каждого it.

Пример использования:

Результат выполнения:

Дополнительные функции проверки в Chai

  • assert(value) – проверяет что value является true в логическом контексте(например: assert(isNaN(testFunctionName(2, 4))).
  • assert.equal(value1, value2) – проверяет равенство value1 == value2.
  • assert.strictEqual(value1, value2) – проверяет строгое равенство value1 === value2.
  • assert.notEqual, assert.notStrictEqual – проверки, обратные двум предыдущим.
  • assert.isTrue(value) – проверяет, что value === true
  • assert.isFalse(value) – проверяет, что value === false
  • …более полный список – в документации

 

Источник: https://learn.javascript.ru/testing


Будь первым кто прокомментирует статью.

Добавить комментарий

Войти с помощью: