Программа mocha для чего

Есть простой способ начать тестирование ваших приложений с помощью Mocha и Chai.

MochaJS — это JavaScript фреймворк, используемый для автоматического тестирования приложений. Он может использоваться как на стороне сервера Javascript, так и в браузере. ChaiJS — это библиотека для node и, как Mocha, Chai может использоваться на стороне сервера или в браузере. Chai может быть использован совместно с любой библиотекой для тестирования. Узнайте больше о Mocha и Chai.

Для примера создадим простую программу для изменения n строк. В начале настроим наш рабочий каталог. Для этого мини-проекта мы будем использовать два пакета npm.

Mocha npm install —save-dev mocha Chai npm install —save-dev chai

Флаг -save-dev указывает npm сохраненить эти зависимости как dev-dependency. Если вы не знаете, что такое dev-dependency, это зависимости, которые нам нужны только во время разработки.

Теперь давайте инициализируем проект. Откроем терминал и cd в рабочий каталог. Начнем проект, набрав npm init внутри рабочего каталога.

Зачем нужна Mocha Pro 2021 — Как быстро делать трекинг и ротоскопинг на русском — AEplug 275


$ mkdir testing-application
$ cd testing-application
$ npm init

Ответьте на вопросы. Это позволит сгенерировать package.json файл.

Совет: Ввод npm init -y отвечает «да» на все вопросы инициализации.

Чтобы все было организовано, рекомендую создать отдельный каталог для всех тестовых скриптов. Назовем каталог tests. Итак, mkdir tests cd tests

По умолчанию, Mocha ищет каталог с именем tests хотя вы можете указать путь к файлу в качестве аргумента команды во время запуска команды mocha.

Поскольку находимся внутри tests/ directory, мы можем создать файл внутри него, и назовем его 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
>);

Mocha¶

Важное место при разработке на Node.js занимает тестирование. И в данном случае гораздо легче воспользоваться имеющимися фреймворками, которые упрощают процесс тестирования. Одним из таких фреймворков является Mocha. Подробнее о фреймворке можно узнать на официальной странице Mochajs. В данном же случае мы рассмотрим некоторые базовые стороны работы с ним.

Читайте также:
Суматра что за программа

Определим в папке проекта новый файл package.json со следующим содержимым:

«name»: «testapp», «version»: «1.0.0» >

Далее добавим в проект пакет mocha с помощью следующей команды:

npm install mocha —save-dev

Так как фреймворк Mocha необходим только для тестирования приложения, то он добавляется в файле package.json в секцию devDependencies с помощью команды —save-dev .

Для тестирования определим простейший модуль. Для этого добавим в проект файл operations.js со следующим содержимым:

MOCHA трекинг за 1 минуту


module.exports.multiply = function (x, y) return x * y; >;

Здесь определена функция умножения двух чисел.

Для тестирования этого модуля добавим в проект новый файл operations.test.js :

var operations = require(‘./operations’); it(‘should multiply two numbers’, function () var expectedResult = 15; var result = operations.multiply(3, 5); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >);

Рассмотрим этот тест. Для тестирования результата применяется функция it() , которая предоставляется фреймворком Mocha.

Эта функция принимает два параметра: текстовое описание тестируемого действия, по которому его можно идентифицировать, и саму тестирующую функцию.

К примеру, нам надо проверить работу выше определенной функции multiply() , которая умножает два числа. Для этого в эту функцию надо передать два числа и сравнить ее результат с ожидаемым. Если результат не совпадает с ожидаемым значением, то генерируется ошибка.

Для упрощения запуска тестов изменим файл package.json следующим образом:

«name»: «testapp», «version»: «1.0.0», «scripts»: «test»: «mocha *.test.js» >, «devDependencies»: «mocha»: «^3.2.0» > >

Здесь добавляется секция «scripts» , в которой определяется команда «test» . Эта команда выполняет команду «mocha *.test.js» , которая запускает тестирование с помощью mocha, передавая фреймворку все файлы, которые оканчиваются на «.test.js»

Если у нас один файл теста, то мы могли бы сразу указать полное имя файла, типа mocha operations.test.js

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

Читайте также:
Драфт программа что это

npm test

5.1.png

В данном случае консоль указывает, что тест пройден.

Но, если мы изменим код теста:

var operations = require(‘./operations’); it(‘should multiply two numbers’, function () var expectedResult = 16; var result = operations.multiply(3, 5); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >);

То тест не будет проходить, так как результат — 15 не равен ожидаемому результату — числу 16 . И консоль уведомит об этом при повторном запуске теста:

5.2.png

Подобным образом мы можем определять и другие тесты. Например, изменим файл модуля operations.js :

module.exports.multiply = function (x, y) return x * y; >; module.exports.add = function (x, y) return x + y; >;

Теперь в файле была добавлена функция для сложения чисел. Протестируем ее в operations.test.js :

var operations = require(‘./operations’); it(‘should multiply two numbers’, function () var expectedResult = 15; var result = operations.multiply(3, 5); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >); it(‘should add two numbers’, function () var expectedResult = 16; var result = operations.add(9, 7); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >);

5.3.png

Тестирование асинхронных функций¶

Немного отличается тестирование асинхронных функций. Например, определим в модуле operations.js асинхронную функцию:

module.exports.multiply = function (x, y) return x * y; >; module.exports.add = function (x, y) return x + y; >; module.exports.multiplyAsync = function (a, b, callback) setTimeout(function () callback(a * b); >, 1000); >;

Протестируем эту функцию в operations.test.js :

var operations = require(‘./operations’); it(‘should multiply two numbers’, function () var expectedResult = 15; var result = operations.multiply(3, 5); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >); it(‘should add two numbers’, function () var expectedResult = 16; var result = operations.add(9, 7); if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > >); it(‘shoud async multiply two numbers’, function (done) var expectedResult = 12; operations.multiplyAsync(4, 3, function (result) if (result !== expectedResult) throw new Error( `Expected $expectedResult>, but got $result>` ); > done(); >); >);

Особенностью тестирования асинхронных функций является то, что чтобы они завершились до завершения теста, в тестирующую функцию передается функция done() . Причем при окончании тестирования нам надо вызвать эту функцию. Тем самым через подобную функцию Mocha сможет контролировать выполнение теста.

Читайте также:
Что за программа goldwave

5.4.png

Если мы не передадим функцию done в тест, тогда тест завершится раньше, чем завершится асинхронная функция.

Источник: nodejsdev.ru

Знакомство с разработкой через тестирование в JavaScript

Обложка: Знакомство с разработкой через тестирование в JavaScript

В этой статье мы познакомимся с разработкой через тестирование на примере простого приложения-калькулятора на Node.js. Тестировать будем с помощью фреймворка Mocha.

Что должно уметь наше приложение:

  • Складывать, вычитать, делить и умножать любые два числа;
  • Показывать предупреждение и завершать работу, если было введено что-то отличное от числа;
  • Также должен быть интерфейс командной строки, чтобы конечный пользователь мог воспользоваться приложением.

Что нам потребуется:

  • Node.js и npm;
  • Знание JavaScript: синтаксис и структура кода, типы данных, математические операции и условные выражения.

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

Настраиваем среду

Так как мы используем Node.js, нужно создать локальное окружение для файлов и зависимостей.

Создайте новую папку calc. В командной строке перейдите в эту директорию и создайте новый проект командой npm init , которая создаст новый файл package.json для нашей программы.

Специалист техподдержки 1С АО «Гринатом» , , можно удалённо , По итогам собеседования

Вам предложат ввести имя пакета, версию, описание и прочую информацию о пакете. Вы можете ввести имя calc.js и дальше жать Enter для присвоения значений по умолчанию. Когда вы дойдёте до test command , введите mocha — это фреймворк для тестирования, который мы будем использовать:

test command: mocha

После ввода всей информации скрипт создаст файл package.json, который выглядит примерно так:

< «name»: «calc.js», «version»: «1.0.0», «description»: «Простой калькулятор на Node.js», «main»: «index.js», «scripts»: < «test»: «mocha» >, «author»: «», «license»: «ISC» >

Последний шаг на данном этапе — установка Mocha. Введите следующую команду для установки:

npm install —save-dev mocha

После применения этой команды появится папка node_modules, файл package-lock.json, а в файле package.json появятся следующие строки:

«devDependencies»:

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru