Javascript 若使用Sinon使用错误参数调用存根函数,则抛出错误

Javascript 若使用Sinon使用错误参数调用存根函数,则抛出错误,javascript,mocha.js,sinon,Javascript,Mocha.js,Sinon,目前,sinon能够创建存根,如果参数匹配,存根将返回给定对象: const methodStub=stub(服务,'method')。带参数(“param1”)。返回(“OK”); 您甚至可以断言调用了正确的参数: expect(methodStub).to.have.been.calledWith(“param1”); 问题:既然您明确表示stubbed方法只允许param1,那么有没有一种方法可以在不明确使用calledWith方法的情况下进行断言?我认为说“您的stubbed方法只允

目前,
sinon
能够创建存根,如果参数匹配,存根将返回给定对象:

const methodStub=stub(服务,'method')。带参数(“param1”)。返回(“OK”);
您甚至可以断言调用了正确的参数:

expect(methodStub).to.have.been.calledWith(“param1”);

问题:既然您明确表示stubbed方法只允许
param1
,那么有没有一种方法可以在不明确使用calledWith方法的情况下进行断言

我认为说“您的stubbed方法只允许
“param1”
”是不对的。相反,您只在使用参数
“param1”
调用方法的情况下存根,并且您已将存根定义为返回
“OK”
。这并不禁止代码使用任何其他参数调用该方法,但是,当使用
“param1”
以外的任何参数调用该方法时,它将返回
未定义的
,因为您没有为任何其他参数存根返回值

有关使用调用的
的具体问题,请参见:

当您使用
.withArgs(“param1”)
约束存根时,正如您的问题所预料的那样,断言已使用
“param1”
调用了存根等同于断言已调用了存根

有一个
.called
属性,该属性的行为与您的代码相同,而不使用
.calledWith
-如果
服务未调用
“param1”
,它将抛出断言错误

expect(methodStub).to.have.been.called