我想测试以下功能。
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,我想要的是 stub 。 async.map
采用 3 个参数,第一个数组以及第二个和第三个回调。我还想 stub 第二个回调并使用测试值调用第三个回调。怎么做?
我尝试过:
var mockAsync = sinon.stub(async, "map")
mockAsync.yields("Some error", null);
但这执行第二个函数而不是第三个函数,我尝试使用callsArg
,但这也没有帮助,不确定这里是否相关。
最佳答案
stub.callArg(argNum)
stub.callArgWith(argNum, [arg1, arg2, ...])
根据您的上下文,它应该是
mockAsync.callArgWith(1, "Some error", null)
关于javascript - sinon.js stub - 如何 stub async.map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38629948/