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

Я видел последствия неправильного написания тестовых примеров в одном из моих проектов, поскольку разработчик всегда торопится с завершением пользовательских историй или функций. Как я проанализировал, мы могли бы остановить по крайней мере 40% ошибок, если бы написали правильные модульные тесты.

Итак, давайте посмотрим, как легко написать примеры модульных тестов Node.Js с использованием библиотек Mocha и Chai.

Mocha - среда для запуска тестов.

Chai - это библиотека утверждений.

  1. Создайте проект 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

:) Теперь вы можете увидеть вывод тестовых случаев. как на изображении ниже.

Я всегда приветствую новый подход, поэтому не стесняйтесь добавлять комментарии по поводу нового подхода.

Спасибо за прочтение. :)