适用范围:

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[第几次调用]