2015-07-24 2 views
1

Я хочу начать модульное тестирование на моем экспресс-проекте узла. Каким будет самый простой и простой способ сделать это?Как выполнить модульное тестирование узла js express application

+0

Посмотрите на мокко. Это среда тестирования JavaScript, которая часто используется с Node.js. Как только вы поиграете с ним, вернитесь и отредактируйте этот пост, так что речь идет о более конкретной проблеме. Удачи! – jmort253

+0

Может быть хорошей отправной точкой: http://javascript.tutorialhorizon.com/2014/09/14/unit-test-your-nodejs-restful-api-using-mocha/ & https://thewayofcode.wordpress.com/2013/04/21/как к сборке-и-тест-отдых-апи-с-nodejs-экспресс-мокко / – Mark

ответ

8

Ниже приведены следующие ссылки.

  1. Mocha

    Mocha является основой теста навороченного JavaScript работает на Node.js и браузер, что делает асинхронные простое тестирование и забаву. Mocha выполняется серийно, обеспечивая гибкую и точную отчетность, при отображении исключенных исключений в правильные тестовые примеры.

  2. Karma

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

  3. Chai

    Chai является BDD/TDD утверждения библиотеки для узла и браузер, который может быть очаровательно в пару с любым яваскриптом рамках тестирования.

  4. Jasmine

    жасмин является поведение Driven система тестирования для развития JavaScript. Он не полагается на браузеры, DOM или любую фреймворк JavaScript . Таким образом, он подходит для сайтов, проектов Node.js или везде, где может работать JavaScript.

  5. Blanket

    Blanket.js проста в установке, проста в настройке и простой в использовании JavaScript библиотека покрытия кода, который работает как в браузере и с nodejs.

Вы также можете выполнить следующие учебники

  1. Getting started with Mocha and Chai
  2. Introduction to Jasmine JS
  3. Setting up a project using karma with mocha and chai
  4. Node.js Testing Strategies
  5. Unit Testing with Node.js
0

Mocha - довольно прочное решение для узла/экспресс. На их сайте есть страница getting started. Простой пример:

var assert = require("assert"); 
var request = require('supertest'); 
var express = require('express'); 

// Module under test 
var version = require('version'); 

describe('server.routes.version', function() { 

    var app; 

    beforeEach(function(done) { 
     app = express(); 
     app.use('/version', version); 
     done(); 
    }); 

    it('gets the product version', function (done) { 

     var expected = { 
      'version': '1.2.3' 
     } 

     request(app) 
      .get('/version') 
      .expect('Content-Type', /json/) 
      .expect(200, expected) 
      .end(function(err, res) { 
       if (err) throw err; 
       done(); 
      }); 
    }); 

}); 

Если вам нужно издеваться из модуля Node зависимость (и в конце концов, вы, вероятно, будет) вещи получить немного больше неудобный; Я имел некоторый успех с комбинацией sandboxed-module и sinon:

var assert = require("assert"); 
var sinon = require('sinon'); 
var request = require('supertest'); 
var express = require('express'); 

describe('server.routes.version', function() { 

    var app, version, mockConfig; 

    beforeEach(function(done) { 
     var mockConfig = sinon.mock({ 
      getVersion: function() {} 
     }); 

     // Load the tested module within a sandbox 
     var sandbox = require('sandboxed-module'); 
     version = sandbox.require('../server/routes/version', { 
      requires: { 
       '../config': mockConfig 
      } 
     }); 

     app = express(); 
     app.use('/version', version); 
     done(); 
    }); 

    it('gets the product version', function (done) { 

     mockConfig.expects('getVersion').once().returns('1.2.3'); 

     var expected = { 
      'version': '1.2.3' 
     } 

     request(app) 
      .get('/version') 
      .expect('Content-Type', /json/) 
      .expect(200, expected) 
      .end(function(err, res) { 
       mockConfig.verify(); 
       if (err) throw err; 
       done(); 
      }); 
    }); 

}); 
Смежные вопросы