Я нахожусь в процессе изучения Node.js и играюсь с Express . Очень нравится фреймворк, но мне сложно понять, как написать тестовый модуль / интеграционный тест для маршрута.
Возможность модульного тестирования простых модулей проста, и они делают это с Mocha ; однако мои модульные тесты с Express не пройдены, так как объект ответа, который я передаю, не сохраняет значения.
Тестируемая функция маршрута (маршруты / 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 ()".