我正在学习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,数据”而失败。
- 我在哪里出错,以便可以正常工作? 
- 有没有更好的方法可以在此级别对代码进行单元测试? 
更新 1.由于我最初忘记了“ it()”,因此更正了代码段。