Jest测试中的SpyOn函数
spyOn
是 Jest 测试框架中的一个功能,用于监视一个函数或方法的调用情况
以下是使用 spyOn
的一些常见用法:
- 监视对象的方法:
const myObject = { myMethod: () => 'original return value',
}; // 创建一个 spyconst spy = jest.spyOn(myObject, 'myMethod'); // 调用方法const result = myObject.myMethod(); // 检查 spy 是否被调用expect(spy).toHaveBeenCalled(); // 检查返回值expect(result).toBe('original return value');
- 监视模块的导出方法:
// myModule.jsexport const myFunction = () => 'original return value'; // myModule.test.jsimport * as myModule from './myModule'; const spy = jest.spyOn(myModule, 'myFunction'); // 调用方法const result = myModule.myFunction(); // 检查 spy 是否被调用expect(spy).toHaveBeenCalled(); // 检查返回值expect(result).toBe('original return value');
- 使用 mock 实现替换原始实现:
const myObject = { myMethod: () => 'original return value',
}; // 创建一个 spy,并提供一个 mock 实现const spy = jest.spyOn(myObject, 'myMethod').mockImplementation(() => 'mocked return value'); // 调用方法const result = myObject.myMethod(); // 检查 spy 是否被调用expect(spy).toHaveBeenCalled(); // 检查返回值expect(result).toBe('mocked return value');
注意:在测试结束时,通常需要使用 spy.mockRestore()
或 spy.mockReset()
恢复原始实现。这样可以确保其他测试不会受到影响。
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论