我想测试以下功能。
var myFun = function (a, b, callback) {
async.map(a, function (b, mapCallback) {
//Do something with b => code I don't want to execute
mapCallback(null, res)
},
function (err, output) {
if (err) {
Logger.error(err);
return callback(err, null);
}
return callback(null, output.filter(function(n){ return n != null }));
});
}
这里我使用的是async.map,我想要的是存根。 async.map
需要3个参数,第一个数组,第二个和第三个回调。我想要存根第二个回调并使用测试值调用第三个回调。怎么做?
我试过了:
var mockAsync = sinon.stub(async, "map")
mockAsync.yields("Some error", null);
但这会执行第二个功能,而不是第三个功能,我尝试使用callsArg
,但这也没有帮助,不确定这里是否相关。
答案 0 :(得分:0)
stub.callArg(argNum)
stub.callArgWith(argNum, [arg1, arg2, ...])
在您的上下文中应该是
mockAsync.callArgWith(1, "Some error", null)