Estou aprendendo Node.js e estou brincando com o Express . Gosto muito da estrutura; no entanto, estou tendo problemas para descobrir como escrever um teste de unidade / integração para uma rota.
Ser capaz de testar módulos simples é fácil e tenho feito isso com o Mocha ; no entanto, meus testes de unidade com Express falham, pois o objeto de resposta que estou passando não retém os valores.
Função de rota em teste (routes / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Módulo de Teste de Unidade:
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");
});
});
});
Quando eu executo isso, ele falha para "Erro: vazamentos globais detectados: viewName, dados".
Onde estou errando para que eu possa fazer isso funcionar?
Existe uma maneira melhor para eu testar a unidade do meu código neste nível?
Atualização 1. Trecho de código corrigido, pois inicialmente esqueci "it ()".