断言 Sinon 间谍的最近通话参数
Assert on most recent call arguments for Sinon spy
在我的实现代码中,我有一个可能被调用多次的更新函数。更新完成,也就是说,如果你调用updateFn(A)
,那么updateFn(B)
,"A"就没有关系,只有"B"会生效。我可以这样写断言:
assert(updateFn.calledWith(B));
这在表面上似乎是一个很好的测试。但是,如果实际调用是 updateFn(A)
→ updateFn(B)
→ updateFn(A)
,那么该断言仍然会通过,这对于所讨论的系统来说是不正确的行为。
我想写的是仅对最近调用的参数的断言。 Sinon 有什么好的方法吗?
使用 Chai 断言,您可以:
expect(updateFn.lastCall.args).to.eql([B]);
其中 [B]
是预期参数的数组。
在我的实现代码中,我有一个可能被调用多次的更新函数。更新完成,也就是说,如果你调用updateFn(A)
,那么updateFn(B)
,"A"就没有关系,只有"B"会生效。我可以这样写断言:
assert(updateFn.calledWith(B));
这在表面上似乎是一个很好的测试。但是,如果实际调用是 updateFn(A)
→ updateFn(B)
→ updateFn(A)
,那么该断言仍然会通过,这对于所讨论的系统来说是不正确的行为。
我想写的是仅对最近调用的参数的断言。 Sinon 有什么好的方法吗?
使用 Chai 断言,您可以:
expect(updateFn.lastCall.args).to.eql([B]);
其中 [B]
是预期参数的数组。