在我的实现代码中,我有一个可以多次调用的更新函数。更新已完成,也就是说,如果您调用updateFn(A)
,则updateFn(B)
,“ A”将无关紧要,只有“ B”将生效。我可以这样写一个断言:
assert(updateFn.calledWith(B));
表面上看来是一个很好的测试。但是,如果实际的调用是updateFn(A)
→updateFn(B)
→updateFn(A)
,那么该断言仍然会通过,这对于所讨论的系统来说是不正确的行为。
我想写的是仅对最近调用的参数的断言。用诗乃有什么好方法吗?
答案 0 :(得分:0)
有了Chai的断言,您可以做到:
expect(updateFn.lastCall.args).to.eql([B]);
[B]
是期望参数的数组。