我是一名有用的助手,可以为您翻译文本。
我正在尝试在Node.js应用程序中使用nodeunit存根函数。以下是我尝试做的简化版本:
在`lib/file.js`中:
在
我正在尝试在Node.js应用程序中使用nodeunit存根函数。以下是我尝试做的简化版本:
在`lib/file.js`中:
var request = require('request');
var myFunc = function(input, callback){
request(input, function(err, body){
callback(body);
});
};
在
test/test.file.js
中:var file = require('../lib/file');
exports['test myFunc'] = function (test) {
request = function(options, callback){
callback('testbody');
};
file.myFunc('something', function(err, body){
test.equal(body, 'testbody');
test.done();
});
};
看起来我没有正确地覆盖request
,因为当我尝试运行测试时,实际的非存根request
被调用了,但是我无法弄清楚正确的方法是什么。
编辑:
为了扩展Ilya在下面的答案,以我的上面的例子为例。
在lib/file/js
中:
module.exports = function(requestParam){
return {
myFunc: function(input, callback){
requestParam(input, function(err, body){
callback(body);
});
}
}
}
接下来在test/test.file.js
中:
var fakeRequestFunc = function(input, callback){
// fake request function
}
var file = require('../lib/file')(fakeRequestFunc)(
//test stuff
}