适用范围:
1. 场景
- 用仿真函数作为作为回调函数传入被测试函数中, 可以查看更具体的调用情况
- 比如: 被调用次数, 每次调用时传入的实参, 每次调用返回的结果
梗概:
- 即用jest创建一个仿真的js函数, 该函数没有具体功能
- 可以给仿真函数指定仿真的返回值
- 可以给真实的函数来实现仿真函数
语法:
1. 创建仿真方法
jest.fn(具体的函数)
- 具体的函数是可选的
- 如果传入了具体的函数, 则仿真函数的内容就是具体函数的内容了
2. 修改仿真函数的内容
2.1. 修改返回值
仿真函数.mockReturnValueOnce(第一次调用的返回值).mockReturnValueOnce(第二次调用的返回值).mockReturnValue(剩余调用的返回值)
3. 查看仿真函数的调用情况
3.1. 查看所有调用情况
仿真函数.mock.calls
- 返回一个二维数组
- 外层每一个元素对应一次调用
- 所以通过查询长度
.length就可以得到调用次数
- 所以通过查询长度
- 内层的元素依次为传入的实参
- 外层每一个元素对应一次调用
3.2. 查看最后依次一次调用情况
仿真函数.mock.lastCall等同于仿真函数.mock.calls的最后一个元素
3.3. 返回结果
仿真函数.mock.results[第几次调用].value
3.4. 仿真函数中的this指向
仿真函数.mock.contexts[第几次调用]