Ich bin gerade dabei, Node.js zu lernen und habe mit Express herumgespielt . Ich mag das Framework wirklich, aber ich habe Probleme herauszufinden, wie man einen Einheits- / Integrationstest für eine Route schreibt.
Es ist einfach, einfache Module zu testen, und das mit Mocha . Meine Komponententests mit Express schlagen jedoch fehl, da das von mir übergebene Antwortobjekt die Werte nicht beibehält.
Zu testende Routenfunktion (route / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Unit Test Modul:
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");
});
});
});
Wenn ich dies ausführe, schlägt es fehl für "Fehler: Globale Lecks erkannt: Ansichtsname, Daten".
Wo mache ich etwas falsch, damit das funktioniert?
Gibt es eine bessere Möglichkeit für mich, meinen Code auf dieser Ebene zu testen?
Update 1. Code-Snippet korrigiert, da ich "it ()" ursprünglich vergessen habe.