Я изучаю Node.js и играю с Express . Мне очень нравится фреймворк; однако мне сложно понять, как написать тест модуля / интеграции для маршрута.
Возможность модульного тестирования простых модулей проста, и мы уже делали это с помощью Mocha ; однако мои модульные тесты с Express терпят неудачу, поскольку объект ответа, который я передаю, не сохраняет значения.
Тестируемая функция маршрута (routes / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Модуль модульного тестирования:
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");
});
});
});
Когда я запускаю это, он не дает «Ошибка: обнаружены глобальные утечки: viewName, data».
Где я ошибаюсь, чтобы заставить это работать?
Есть ли лучший способ провести модульное тестирование моего кода на этом уровне?
Обновление 1. Исправлен фрагмент кода, так как я изначально забыл "it ()".