sinon.js验证模拟方法的回调参数

时间:2015-03-21 11:01:24

标签: javascript sinon

是否可以使用回调验证参数。我在想这样的事情:

var spy = sinon.spy(someObject, "method");

//json is an object with like 10 properties
spy.withArgs(function(json){
  return 'undefined' !== typeof json.importantProp1 && 'undefined' !== typeof json.importantProp2;
});

2 个答案:

答案 0 :(得分:0)

没有回调。为了验证参数,您可以使用spy.calledWith和类似的。

http://sinonjs.org/docs/#spies-api

答案 1 :(得分:0)

是的,您可以使用匹配器执行此操作:

spy.calledWithMatch(function(json){
  return 'undefined' !== typeof json.importantProp1
    && 'undefined' !== typeof json.importantProp2;
});

也可以使用sinon.match(function () {}))创建匹配器,并将其与spy.withArgs一起使用。