jest.fn()是Jest测试框架中的一个函数,用于模拟函数调用和返回值。通过使用jest.fn(),我们可以创建一个模拟函数,以便在测试中对其进行调度。
使用jest.fn()模拟调度的步骤如下:
const { jest } = require('@jest/globals');
const mockFunction = jest.fn();
myFunction
的函数,我们可以使用模拟函数来替代它的调用:myFunction(mockFunction);
mockFunction.mock.calls
:返回一个数组,包含每次调用模拟函数时传递的参数列表。mockFunction.mock.calls.length
:返回模拟函数被调用的次数。mockFunction.mock.calls[index]
:返回第index次调用时传递的参数列表。mockFunction.mock.calls[index][paramIndex]
:返回第index次调用时传递的第paramIndex个参数。例如,可以使用以下代码来验证模拟函数是否被调用了两次,并检查每次调用时的参数:
expect(mockFunction.mock.calls.length).toBe(2);
expect(mockFunction.mock.calls[0][0]).toBe('param1');
expect(mockFunction.mock.calls[1][0]).toBe('param2');
mockReturnValue
方法来指定模拟函数的返回值。例如,可以使用以下代码来指定模拟函数在每次调用时返回不同的值:mockFunction.mockReturnValueOnce('value1').mockReturnValueOnce('value2');
mockReset
方法。例如:mockFunction.mockReset();
这样,模拟函数将被重置为初始状态,以便在下一个测试中使用。
总结起来,使用jest.fn()可以创建一个模拟函数,模拟函数可以替代实际的函数调用,并且可以验证模拟函数的调用和参数,指定模拟函数的返回值,并在需要时重置模拟函数的状态。
腾讯云相关产品和产品介绍链接地址:
云+社区沙龙online [技术应变力]
云+社区沙龙online [云原生技术实践]
腾讯云数据湖专题直播
企业创新在线学堂
企业创新在线学堂
云+社区沙龙online
TechDay
北极星训练营
北极星训练营
北极星训练营
领取专属 10元无门槛券
手把手带您无忧上云