Jestem w trakcie nauki Node.js i bawiłem się Expressem . Bardzo podoba mi się framework; jednak mam problem ze zrozumieniem, jak napisać test jednostkowy / integracyjny dla trasy.
Możliwość jednostkowego testowania prostych modułów jest łatwa i robiłem to z Mocha ; Jednak moje testy jednostkowe z Express kończą się niepowodzeniem, ponieważ obiekt odpowiedzi, który przekazuję, nie zachowuje wartości.
Trasa-funkcja w trakcie testowania (route / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Moduł testów jednostkowych:
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");
});
});
});
Po uruchomieniu to kończy się niepowodzeniem z komunikatem „Błąd: wykryto globalne wycieki: nazwa_widoku, dane”.
Gdzie popełniam błąd, aby to zadziałało?
Czy istnieje lepszy sposób na testowanie jednostkowe kodu na tym poziomie?
Aktualizacja 1. Poprawiony fragment kodu, ponieważ początkowo zapomniałem „it ()”.