Estoy en el proceso de aprender Node.js y he estado jugando con Express . Realmente me gusta el marco; sin embargo, tengo problemas para averiguar cómo escribir una prueba de unidad / integración para una ruta.
Poder realizar pruebas unitarias de módulos simples es fácil y lo he estado haciendo con Mocha ; sin embargo, mis pruebas unitarias con Express fallan porque el objeto de respuesta que estoy pasando no retiene los valores.
Función de ruta bajo prueba (rutas / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Módulo de prueba unitaria:
var should = require("should")
, routes = require("../routes");
var request = {};
var response = {
viewName: ""
, data : {}
, render: function(view, viewData) {
viewName = view;
data = viewData;
}
};
describe("Routing", function(){
describe("Default Route", function(){
it("should provide the a title and the index view name", function(){
routes.index(request, response);
response.viewName.should.equal("index");
});
});
});
Cuando ejecuto esto, falla por "Error: fugas globales detectadas: viewName, datos".
¿Dónde voy mal para que esto funcione?
¿Existe una mejor manera de realizar una prueba unitaria de mi código en este nivel?
Actualización 1. Fragmento de código corregido ya que inicialmente olvidé "it ()".