Тестирование - это то, о чем каждый должен заботиться при развертывании своих потрясающих приложений для производства. Перед развертыванием приложения необходимо тестировать, поскольку это помогает нам гарантировать, что приложения соответствуют требуемому знаку качества и сталкиваются с меньшим количеством ошибок постпроизводства по сравнению с приложениями, которые не тестировались ранее.
Я собираюсь показать вам основной и самый простой способ начать тестирование ваших приложений с помощью Mocha и Chai.
MochaJS - это среда тестирования Javascript, используемая для автоматического тестирования приложений. Его можно использовать как в серверном Javascript, так и в браузере. ChaiJS - это библиотека утверждений для узла, и, как и Mocha, Chai можно использовать в серверном Javascript или в браузере. Chai можно использовать с любым фреймворком для тестирования. Подробнее о Мокко и Чай.
Мы бы создали простую программу для переворота n строки. Итак, давайте настроим наш рабочий каталог. Для этого мини-проекта мы будем использовать два пакета npm.
Мокко npm install —save-dev mocha
&& Чай npm install —save-dev chai
Здесь флаг - save-dev сообщает npm, что нужно сохранить эти зависимости как dev-dependency. Если вы не знаете, что такое dev-dependency, это зависимости, которые нам нужны только во время разработки, а не в производстве.
Теперь давайте начнем с создания файла init
. Откройте терминал (командная строка, если вы работаете в Windows). cd
в ваш рабочий каталог. Начните свой проект, набрав npm init
в рабочем каталоге.
$ mkdir testing-application
$ cd testing-application
$ npm init
И ответьте на задаваемые вопросы. Он сгенерирует для вас package.json
файл.
QuickTip: Запустите
npm init -y
, чтобы ответить да на все вопросы.
Чтобы все было организовано, я бы рекомендовал вам создать отдельный каталог для всех сценариев тестирования. Назовем это тестами. Итак, mkdir tests && cd tests
По умолчанию Mocha ищет каталог с именем test. хотя вы можете указать путь к файлу в качестве аргумента команды при запуске команды mocha.
Поскольку мы находимся внутри каталога tests /, мы можем создать внутри него файл, который мы назовем strTest.js (touch strTest.js
). Внутри этого файла будет написан наш тестовый скрипт. Давай сделаем это.
Установите Mocha и Chai с помощью npm install mocha chai --save
. --save
флаг для сохранения в package.json
файле.
const mocha = require(’mocha’); // require mocha
const chai = require(’chai’); // require chai
const expect = chai.expect;
describe(’Reverse String Test’, () => {
// Code
});
Мы описываем то, что хотим протестировать, используя describe()
. Он принимает два параметра: String
и функцию обратного вызова. Эта строка может быть чем угодно.
const mocha = require('mocha');
const chai = require('chai');
const expect = chai.expect;
describe('Reverse String Test', () => {
it('Checks if the strings is reversed', () => {
// Code
});
});
it()
используется для описания того, какая функция будет протестирована в этом блоке кода. Вы можете писать вложенные describe()
и it()
.
Теперь напишите функцию, которую хотите протестировать. В этом случае это будет функция для переворота строки. Мы создадим этот файл в корневом каталоге проекта, а не в каталоге test /. Назовите это strReverse.js
. Итак, это будет примерно так:
module.exports = (someString) => {
let revStr = someString.split('');
revStr = revStr.reverse().join('');
return revStr;
};
Теперь require()
это в strTest.js
скрипте, чтобы мы могли использовать его для тестирования.
const mocha = require('mocha');
const chai = require('chai');
const strReverse = require('../strReverse'); // require strReverse.js script
const expect = chai.expect;
describe('Reverse String Test', () => {
it('Checks if the strings is reversed', () => {
// Code
});
});
Все готово! Ну, почти. Теперь нам нужно написать наши тестовые примеры, чтобы Mocha мог протестировать его на разных входах и выходах.
Сохраните несколько тестовых значений в переменных. Я буду тестировать его по двум значениям.
let str1 = strReverse('Mocha is cool!!');
let str2 = strReverse('Chai is super supportive.');
Здесь начинается использование expect
переменных.
expect(str1).to.equal('!!looc si ahcoM');
expect(str2).to.equal('.evitroppus repus si iahC')
Вы можете указать любое количество тестовых случаев. Итак, полный тестовый сценарий будет выглядеть примерно так:
const mocha = require('mocha');
const chai = require('chai');
const strReverse = require('../strReverse'); // require strReverse.js script
const expect = chai.expect;
describe('Reverse String Test', () => {
it('Checks if the strings is reversed', () => {
let str1 = strReverse('Mocha is cool!!');
let str2 = strReverse('Chai is super supportive.');
expect(str1).to.equal('!!looc si ahcoM');
expect(str2).to.equal('.evitroppus repus si iahC');
});
});
В файле package.json
определите новый ключ test (может существовать. В этом случае измените его значение) внутри ключа скрипта и присвойте ему значение mocha.
Теперь запустите свой тестовый скрипт. npm test tests/strTest.js
. При прохождении / невыполнении тестов mocha отправит вам подробный отчет и отчет об ошибках.
Результат этого теста:
[~/D/t/testing with mocha|3.6.5]
»»»» npm test tests/strTest.js 0|14:27:26
> [email protected] test /home/abdus/Documents/test/testing with mocha
> ./node_modules/mocha/bin/mocha "tests/strTest.js"
Reverse String Test
✓ Checks if the strings is reversed
1 passing (18ms)
[~/D/t/testing with mocha|3.6.5]
»»»» 0|14:27:30
Это все! Пойдите и исследуйте мокко самостоятельно. Жизнь слишком коротка, чтобы продолжать работу!
Подробнее откуда это взялось
Эта история публикуется в журнале Noteworthy, куда ежедневно приходят тысячи людей, чтобы узнать о людях и идеях, формирующих наши любимые продукты.
Следите за нашей публикацией, чтобы увидеть больше историй о продуктах и дизайне, представленных командой Journal.