Jim*_*mmy 1 javascript typescript jestjs
我有以下文件:
样本函数.ts:
export default (x: number) => x * 2;
Run Code Online (Sandbox Code Playgroud)
测试文件:
import sampleFunction from './sampleFunction';
export default () => {
const n = sampleFunction(12);
return n - 4;
};
Run Code Online (Sandbox Code Playgroud)
测试文件.test.ts:
import testFile from './testFile';
const mockFn = jest.fn();
jest.mock('./sampleFunction', () => ({
__esModule: true,
default: mockFn,
}));
test('sample test', () => {
testFile();
expect(mockFn).toBeCalled();
});
Run Code Online (Sandbox Code Playgroud)
当我运行时testFile.test.ts,出现以下错误:
TypeError: (0 , _sampleFunction).default is not a function
Run Code Online (Sandbox Code Playgroud)
sampleFunction.ts当 Jest 有默认导出函数时,我如何使用它进行模拟?
当模拟默认导出时,您需要将default和传递__esModule给 jest:
const mockFn = jest.fn();
jest.mock("./sampleFunction", () => ({
__esModule: true,
default: mockFn,
}))
Run Code Online (Sandbox Code Playgroud)