我正在学习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()”,因此更正了代码段。