我应该在测试中使用toHaveBeenCalledTimes来计算调度被调用了多少次吗?

时间:2019-01-14 13:41:58

标签: javascript reactjs redux jestjs

我经常看到我的队友在对Jest的测试中使用toHaveBeenCalledTimes来计算调用Redux存储的调度方法的次数。

对我来说似乎没有用和多余:如果我们检查是否调用了正确的操作,为什么我们需要计算调度方法的调用次数?

看起来像这样:

expect(setEnabled).toHaveBeenCalled(); expect(updateUserData).toHaveBeenCalled(); expect(dispatch).toHaveBeenCalledTimes(2);

检查调度方法的调用次数真的有意义吗? 在这种情况下,我们似乎并没有真正测试该功能是否正常工作,而是测试了实现。

1 个答案:

答案 0 :(得分:1)

在极少数情况下,嵌套或循环调度调用会导致意外的状态行为,但是在大多数情况下,如果未实现复杂的Redux中间件,toHaveBeenCalledTimes()此处的检查是多余的。但是,多余的测试可以说比不足的测试要好,因此不一定能得出结论说您的队友做错了事。