Javascript 在方法有两个参数的情况下,有没有办法使用sinon来存根方法
让我解释一下问题陈述: 我用的是摩卡、柴和西农。我正在尝试存根一个如下所示的方法:Javascript 在方法有两个参数的情况下,有没有办法使用sinon来存根方法,javascript,unit-testing,mocha.js,sinon,chai,Javascript,Unit Testing,Mocha.js,Sinon,Chai,让我解释一下问题陈述: 我用的是摩卡、柴和西农。我正在尝试存根一个如下所示的方法: myNamespace.myMethod({ beforeSend(){…} },回调) 我想存根myMethod并在发送之前调用以及回调。我无法找到有效的解决方案。我尝试了以下方法,但无效: sinon.stub(myNamespace,'myMethod').yieldsTo('beforeSend',{}).callsArg(1); 我做错了什么?不可能像这样为同一个函数调用链接两个不同的行为,因此.c
myNamespace.myMethod({
beforeSend(){…}
},回调)
我想存根myMethod
并在发送之前调用
以及回调
。我无法找到有效的解决方案。我尝试了以下方法,但无效:
sinon.stub(myNamespace,'myMethod').yieldsTo('beforeSend',{}).callsArg(1);
我做错了什么?不可能像这样为同一个函数调用链接两个不同的行为,因此
.callsArg(1)
最终覆盖.yieldsTo('beforeSend',{})
对于这种情况,您需要提供一个假的实现,包括:
const sinon=require('sinon');
常量myNamespace={
myMethod:(obj,回调)=>{}
}
它('myMethod',()=>{
const beforeSendArg={};
sinon.stub(myNamespace,'myMethod').callsFake((obj,callback)=>{
对象发送前(发送前参数);
回调();
});
const beforeSend=sinon.spy();
const callback=sinon.spy();
myNamespace.myMethod({beforeSend},回调);
sinon.assert.calledWithJustice(beforeSend,beforeSendArg);//成功!
sinon.assert.called(回调);//成功!
});
我试试看!