Введение в мокко и assert:

нам нужна среда тестирования, которая является мокко, а также библиотека утверждений. node поставляется со встроенной библиотекой утверждений, но он не так силен для тестирования приложений. поэтому мы будем использовать библиотеку assert.

Установим мокко:

$ sudo npm install mocha -g

Создайте новый каталог для нового проекта

Тест $ mkdir

$ cd test

создайте новый файл внутри тестовой папки:

$ touch test.js

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

Затем мы создадим контекст внутри блока описания. context - это просто псевдоним для описания, который используется для различения модульных тестов.

внутри контекста мы вызовем тестируемую функцию… это метод, который должен быть вызван.

Теперь внутри контекста мы создадим блок it, внутри которого будут проходить все наши модульные тесты. «Это» принимает два параметра…. одна строка, а затем функция.

мы формулируем это так, как если бы мы произносили предложение, как в обычном английском.

Например:

если функция должна сохранять пользователя:

it («должен спасти пользователя», () = ›{

}

поэтому для каждого теста у нас будет соответствующий блок «it».

у нас будет одно описание для всего файла… .. контекст для каждой функции, а затем «оно» для каждого отдельного теста.

  1. нам нужна библиотека assert.
  2. мы видим, если 1 = 2, используя метод равенства.
  3. обновите файл ur package.json:
  4. «Тест»: «мокко»
  5. запустите файл с помощью $ mocha test.js
  6. он явно не работает, потому что 1 не равно 2. давайте изменим его на 1 и снова проверим.

  1. Во втором тесте мы смотрим, совпадают ли имена или нет, используя метод deepEqual.

Давайте посмотрим, что такое ожидающий тест:

  1. ожидающий тест - это тест, в котором ничего нет. он используется, когда есть функция, которую вам нужно протестировать в будущем или которая еще не существует.
  2. если мы запустим этот файл….

До, после, до и после каждого

они помогают нам создавать экземпляры и заглушки, которые помогут нам в более чистом коде и разбивают тесты на более мелкие блоки. До и после выполнения до и после каждого теста, а также до и после каждого будут выполняться между каждым тестом.

  1. давайте посмотрим, что будет печататься, если мы добавим блоки до и после.
  2. before и after оба принимают функцию как параметр, и мы распечатываем ее.
  3. давай запустим его с мокко.

мы видим, что console.log напечатала его перед всеми другими тестами.

это использование до и после.

давайте теперь посмотрим, какова польза от before-each и after-each:

  1. просто добавьте код в test.js и запустите его…
  2. теперь мы можем различить их.
  3. он выполняется до и после каждого модульного теста, который мы проводим с мокко.
  4. миссия выполнена…

Множественные контексты

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

Введение в Chai (библиотека утверждений)

у него есть три стиля…… следует, ожидать и утверждать. Вы можете выбрать любого по своему вкусу.

Основы чая

давайте сначала установим chai:

$ sudo npm install - save-dev chai

создайте новый файл в тестовой папке:

$ touch chai-test.js

  1. сначала требуется чай ...
  2. затем используйте стиль expect .. вы также можете выбрать should и assert….
  3. затем используйте его как обычное предложение… expect (1) .to.equal. (1).
  4. затем запустите тест с использованием мокко… это так просто ..

давайте добавим еще один тест…

  1. Теперь мы видим, являются ли два объекта одинаковыми или нет… используя равный метод.
  2. давай и беги мокко ...
  3. есть ошибка ...

4. мы получили эту ошибку, потому что объекты являются указателями, и это не сработает.

5. поэтому нам нужно использовать deep.equal, а не equal.

6. замените .equal и снова запустите.

7. работает как шарм…

Основы тестирования

давайте протестируем функцию добавления…. создайте новый файл standard.js в корневом пути:

структура папок должна быть

в standard.js…. напишите функцию, которую хотите протестировать:

ваш standard.test.js должен выглядеть примерно так:

ваш package.json должен выглядеть примерно так:

  1. $ npm install cross-env - sav-dev
  2. - exit, чтобы тест мог выйти после выполнения.
  3. чтобы использовать istanbul, $ npm install nyc - save-de v, nyc является кликом для istanbul и создает для вас файл покрытия в корневом каталоге.
  4. если вы хотите запустить файл standard.js с istanbul…
  5. Покрытие пробега $ npm
  6. теперь он будет генерировать отчеты по всей кодовой базе, которая покрывается ur-тестами.

покрытие кода будет выглядеть примерно так:

просто посмотрите на последнюю строчку… мы видим, что файл standard.js прошел все тесты со 100% покрытием.

также должна быть создана папка покрытия, в которой вы можете просмотреть отчет.

теперь продолжайте ... и выполните модульные тесты ur и поиграйте с mocha, chai и istanbul ...