Je suis en train d'apprendre Node.js et j'ai joué avec Express . J'aime vraiment le framework; cependant, j'ai du mal à comprendre comment écrire un test unitaire / d'intégration pour une route.
Être capable de tester des modules simples est facile et je l'ai fait avec Mocha ; cependant, mes tests unitaires avec Express échouent car l'objet de réponse que je transmets ne conserve pas les valeurs.
Route-Function Under Test (routes / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Module de test unitaire:
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");
});
});
});
Quand j'exécute ceci, cela échoue pour "Erreur: fuites globales détectées: viewName, data".
Où est-ce que je vais mal pour que je puisse faire fonctionner cela?
Existe-t-il un meilleur moyen pour moi de tester mon code unitaire à ce niveau?
Mise à jour 1. Extrait de code corrigé depuis que j'ai initialement oublié "it ()".