Sto imparando a utilizzare Node.js e sto giocando con Express . Mi piace molto il framework; tuttavia, ho problemi a capire come scrivere un test di unità / integrazione per un percorso.
Essere in grado di testare unità semplici moduli è facile e l'ho fatto con Mocha ; tuttavia, i miei unit test con Express hanno esito negativo poiché l'oggetto risposta che sto passando non conserva i valori.
Route-Function Under Test (rotte / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Modulo di test unitario:
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 lo eseguo, non riesce per "Errore: rilevate perdite globali: viewName, dati".
Dove sto sbagliando in modo che possa farlo funzionare?
C'è un modo migliore per me di testare il mio codice a questo livello?
Aggiornamento 1. Corretto frammento di codice poiché inizialmente avevo dimenticato "it ()".