最佳答案
我正在学习 Node.js 的过程中,并且一直在使用 特快。非常喜欢这个框架; 但是,我在为一个路由编写单元/集成测试时遇到了麻烦。
能够对简单的模块进行单元测试是很容易的,并且已经使用 摩卡进行了单元测试; 然而,我使用 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 ()”。