是否可以使用Sinon.JS检查函数参数绑定是否正确
Is it possible to check if a function arguments bound correctly using Sinon.JS
假设我们有一个函数,它返回一个函数并为其绑定参数:
function A(x, y){
return function(x, y){...}.bind(this, x, y);
}
现在我们想知道函数A是否正确地绑定了参数:
var resultedFunction = A();
var spy = sinon.spy(resultedFunction);
spy();
问题是,是否有可能知道参数是否正确绑定?我试过这个,但它是一个空数组
spy.firstCall.args
spy.getCall(0).args
我终于学会了一些技巧。如果返回函数不是匿名的,那么我们可以监视它并稍后检查参数:
var obj = {
B: function(){
...
},
A: function(x, y){
return this.B.bind(this, x, y);
}
}
var x = 1, y = 2;
var spy = sinon.spy(obj, "B");
var resultedFunction = obj.A(x, y);
resultedFunction();
expect(spy.firstCall.args[0]).to.equals(x)
expect(spy.firstCall.args[0]).to.equals(y)
相关文章:
- 测试mongo脚本中是否存在参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 是否可以在javascript函数参数列表中调用多个函数
- 在函数参数中使用变量,无论是否使用Jquery
- Javascript检查参数是否为零值
- 是否可以在 Javascript 中将未声明的变量作为参数传递
- 是否存在用于解析 URL 路径段(矩阵)参数的 JavaScript 库
- 为什么 JSON.parse 无法检测参数是否已采用 JSON 格式
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- 是否可以稍微修改我的对称差分函数,使其可以接受未知数量的参数
- Node.js如何知道回调的第一个参数是否是错误处理程序
- 是否可以将参数/变量传递给Onblur函数
- 是否可以在NodeJS中将参数拆分为值
- 是否可以将条件语句或其他javascript作为参数传递到ember句柄中
- 是否可以获得“”的事件对象;当前“;或“;最后一个“;事件,而不将其作为处理程序中的参数接收
- Backbone.js的Backbone.Modelbinding插件中是否有绑定的转换器参数
- 确定回调是否使用所有参数
- 检查参数是否传递给Java Script函数
- 本地页面是否可以接受文本值,并以值作为参数在Internet URL上打开新选项卡
- 是否可以将参数作为“/parameter_value”;并使用Javascript进行访问