Сначала я думал, почему мой Архитектор просит написать тестовые примеры, это просто потеря времени, но позже я понял, что это так же важно, как и разработка вашей новой функции. Потому что это придаст вам уверенности в каждой итерации новой сборки или выпуска.
Я видел последствия неправильного написания тестовых примеров в одном из моих проектов, поскольку разработчик всегда торопится с завершением пользовательских историй или функций. Как я проанализировал, мы могли бы остановить по крайней мере 40% ошибок, если бы написали правильные модульные тесты.
Итак, давайте посмотрим, как легко написать примеры модульных тестов Node.Js с использованием библиотек Mocha и Chai.
Mocha - среда для запуска тестов.
Chai - это библиотека утверждений.
- Создайте проект node.js, используя:
npm init
2. Установите зависимости
npm i mocha -g (global install) npm i chai mocha request -D (local install)
3. Создайте файл app.js и напишите приведенный ниже код.
const express = require('express'); const app = express(); app.get('/ping', (req, res)=>{ res.status(200); res.json({message: 'pong'}); }); app.listen(8080, ()=>{ console.log('Waw Server is running : 8080') });
4. создайте папку test, добавьте файл app.test.js и напишите приведенный ниже код.
var expect = require('chai').expect; var request = require('request'); describe('app rest api testing', () => { it('/ping status code', (done) => { request('http://localhost:8080/ping', (err, result, body) => { expect(result.statusCode).to.equal(200); expect(body).to.equal(JSON.stringify({"message":"pong"})); done(); }); }); });
Перед запуском приложения убедитесь, что вы настроили все в файле package.json, как показано ниже.
после этого запустите ваше приложение, используя следующую команду
npm run start
Для тестирования вашего приложения вам необходимо открыть новую командную строку и выполнить команду ниже
npm run test
:) Теперь вы можете увидеть вывод тестовых случаев. как на изображении ниже.
Я всегда приветствую новый подход, поэтому не стесняйтесь добавлять комментарии по поводу нового подхода.
Спасибо за прочтение. :)