在 jest.config.js 中添加setupFilesAfterEnv后,如下所示:
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
setupFilesAfterEnv: ["./test/setupAfterEnv.ts"]
}
Run Code Online (Sandbox Code Playgroud)
模拟函数在文件中不再起作用,.test.ts但在 setupFilesAfterEnv 内写入的文件中起作用,例如./test/setupAfterEnv.ts
模拟函数示例(.test.ts文件和setupAfterEnv.ts同一目录中):
jest.mock("../src/service/sendEmail.ts", () => ({
send: () => {
return "MOCK sendEmail sent"
}
}));
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,并且应该模拟的其他函数运行。当我在模拟函数中写入错误的路径时,出现错误can't find module。所以看起来它找到了应该被模拟的函数,但不运行模拟函数而是运行另一个函数
如果我评论了setupFilesAfterEnv配置,jest.config.js 它会再次起作用。