【发布时间】:2021-08-27 15:24:27
【问题描述】:
我在我的测试中模拟了一个函数
jest.mock('@lib/commons', () => ({
callApi: () => Promise.resolve({id: 'value'}),
validateSchema: () => true
}));
如果我这样使用它就完美了
jest.mock('@lib/commons', () => ({
callApi: () => Promise.resolve({id: 'value'}),
validateSchema: () => true
}));
it("test", async () => {
// Test code
});
但问题是我不能将 jest.mock 放入 it。鉴于我希望根据不同的场景获得不同的结果,我希望它可以作为一个函数工作。有什么建议吗?
【问题讨论】:
-
当你在测试中模拟时它没有被提升,当你正在测试的模块被导入时模拟不存在。您还必须将该模块的导入移动到测试中,请参阅jestjs.io/docs/jest-object 中的示例。但请注意,您实际上并不需要这样做才能在不同的测试中获得不同的响应 - 将模拟导入您的测试文件并使用它们公开的配置方法。
标签: typescript jestjs ts-jest