我经常看到我的队友在对Jest的测试中使用toHaveBeenCalledTimes
来计算调用Redux存储的调度方法的次数。
对我来说似乎没有用和多余:如果我们检查是否调用了正确的操作,为什么我们需要计算调度方法的调用次数?
看起来像这样:
expect(setEnabled).toHaveBeenCalled();
expect(updateUserData).toHaveBeenCalled();
expect(dispatch).toHaveBeenCalledTimes(2);
检查调度方法的调用次数真的有意义吗? 在这种情况下,我们似乎并没有真正测试该功能是否正常工作,而是测试了实现。
答案 0 :(得分:1)
在极少数情况下,嵌套或循环调度调用会导致意外的状态行为,但是在大多数情况下,如果未实现复杂的Redux中间件,toHaveBeenCalledTimes()
此处的检查是多余的。但是,多余的测试可以说比不足的测试要好,因此不一定能得出结论说您的队友做错了事。