我有这样的功能:如何秘密监视回调参数
var updateSomething = function(arg1, arg2, callback) {
...
db.update(arg, function(err, res) {
callback(err, res);
});
};
我测试的API做了一些要求在内部调用这个函数,我很感兴趣已知回调值时,它的叫,我怎么可以用Sinon窥探res和err在我的单元测试中的值?
我有这样的功能:如何秘密监视回调参数
var updateSomething = function(arg1, arg2, callback) {
...
db.update(arg, function(err, res) {
callback(err, res);
});
};
我测试的API做了一些要求在内部调用这个函数,我很感兴趣已知回调值时,它的叫,我怎么可以用Sinon窥探res和err在我的单元测试中的值?
假设您的API需要从外部callback
说法:
var callbackSpy = sinon.spy();
yourAPI.fetchSomething(arg1, arg2, callbackSpy);
console.log(callbackSpy.args[0]);
感谢您的回复,我没有从外面回拨那种情况会容易得多,我不需要间谍来获得价值 –
哦,对...呃,我想我被推迟了:D笑话除此之外,如果'updateSomething'被定义为私有变量,你所要求的是不可能的 –
我开始认为不可能检查,因为你猜测updateSomething是一个私有函数:) –
这就是依赖注入就派上用场了。实际上有一个很好的入门视频:https://www.youtube.com/watch?v=0X1Ns2NRfks&list=LL0OkHqip6ufJ94z9og1nIHw&index=4 – eol
良好的信息,谢谢队友! –