开玩笑:期望mockFN.mock.calls.length.toBe与toHaveBeenCalledTimes

时间:2019-01-10 05:15:20

标签: jestjs

最简单的模拟函数文档(https://jestjs.io/docs/en/mock-functions)使用.mock.calls.length属性显示有关间谍的断言。

有什么区别
const myFunc = jest.fn()
myFunc();
expect(myFunc.mock.calls.length).toBe(1)

 const myFunc = jest.fn()
 myFunc();
 expect(myFunc).toHaveBeenCalledTimes(1)

是糖吗?用户何时应使用mock对象?

1 个答案:

答案 0 :(得分:0)

是的,这些匹配器是糖,但是,当然,它们并没有涵盖人们可能想要断言的所有可能场景。如果用户没有他们需要的东西,他们将不得不使用 .mock 属性。

在笑话文档 (https://jestjs.io/docs/mock-functions) 中,这在自定义匹配器标题下有明确说明:

<块引用>

最后,为了减少断言模拟函数是如何被调用的要求,我们为您添加了一些自定义匹配器函数:

*** 匹配器函数示例 ***

这些匹配器是检查 .mock 属性的常见形式的糖。如果这更符合您的口味或者您需要做一些更具体的事情,您始终可以自己手动执行此操作。