您好我想监视下面的函数,因为函数返回一个promise,所以我需要返回promise,让其他代码继续运行。
但它从未通过测试,我做错了吗?我怎么能正确地做到这一点?提前谢谢。
抱歉,我可能没有清楚地描述问题,another_fn
会调用object.method.origin_fn
,而orgin_fn
会返回一个承诺;我想窥探origin_fn
被调用。我怎么能这样做?
let spy_fn = sinon.spy();
sinon.stub(object, 'method').returns({
origin_fn(args) {
spy_fn(args);
return Promise.resolve();
}
});
another_fn('test_args');
spy_fn.should.have.been.calledWith('test_args');
答案 0 :(得分:0)
如果您只想确保使用正确的参数调用origin_fn
,则可以使用以下内容:
let spy = sinon.stub(object, 'method').returns({
origin_fn(arg) {
arg.should.equal('test_args');
}
})
let fn = function() { another_fn('test_args'); };
fn.should.not.throw();