Я в процесі вивчення 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, дані".
Де я помиляюся, щоб я міг це зробити?
Чи є кращий спосіб для мене перевірити свій код на цьому рівні?
Оновлення 1. Виправлений фрагмент коду, оскільки я спочатку забув "it ()".