Jest测试中的SpyOn函数
spyOn
是 Jest 测试框架中的一个功能,用于监视一个函数或方法的调用情况
以下是使用 spyOn
的一些常见用法:
- 监视对象的方法:
const myObject = {
myMethod: () => 'original return value',
};
// 创建一个 spy
const spy = jest.spyOn(myObject, 'myMethod');
// 调用方法
const result = myObject.myMethod();
// 检查 spy 是否被调用
expect(spy).toHaveBeenCalled();
// 检查返回值
expect(result).toBe('original return value');
- 监视模块的导出方法:
// myModule.js
export const myFunction = () => 'original return value';
// myModule.test.js
import * 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()
恢复原始实现。这样可以确保其他测试不会受到影响。
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论