可以将sinon存根与Args匹配一些,但不是所有的参数

我有一个函数,我被称为多个参数的存根。 我想检查第一个参数 。 其余的是callback函数,所以我想让他们独自一人。 因此,我可能会有以下2个调用,以ajax为例:

method.get = sinon.stub(); method.get(25,function(){/* success callback */},function(){/* error callback */}); method.get(10,function(){/* success callback */},function(){/* error callback */}); 

我不能使用method.get.calls...因为它不区分第一个get(25)和第二个get(10) 。 但是,如果我使用method.get.withArgs(25).calls...那么它也不匹配,因为withArgs()匹配所有参数,这不(也永远不能用这样的callback)。

我如何获得sinon stubs来检查并根据第一个arg设置响应?

http://sinonjs.org/docs/#sinon-match-api

你可以使用sinon.match.any:

 method.get.withArgs(25, sinon.match.any, sinon.match.any); 

如果你只是想检查你可以使用的第一个参数

 method.get.withArgs(25).calledOnce 

要么

 method.get.calledWith(25) 
Interesting Posts