【发布时间】:2016-05-09 19:39:03
【问题描述】:
假设我们有一个函数,它返回一个函数并为其绑定参数:
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
【问题讨论】:
-
我相信测试
A是否被正确的参数调用会很好。毕竟你可能不想测试bind。 -
@РоманПарадеев,当我们测试 A 时,它有责任为其返回的函数绑定参数。不是吗?我认为如果我们测试一些使用参数调用 A 的函数 B,您的建议会更容易接受。
-
您的示例中的绑定是一个实现细节。您可以使用闭包为
A实现相同的行为,并且测试不应该开始失败,因为函数仍然正确。
标签: javascript unit-testing sinon sinon-chai