我正在将项目中的 jest 从 27.4.7 升级到 29.5.0,突然我的模块模拟不起作用。我尝试阅读the documentation看起来没有任何改变,但它根本不起作用。也许我错过了什么。我在这里找到的所有答案都告诉我要做我一直在做的事情,所以我有点不知所措。
这是一个例子:
mockTest.spec.ts
import { isTestPartnerId } from './utility';
jest.mock('./utility', () => ({
__esModule: true,
isTestPartnerId: jest.fn(async (base, context, id) => Promise.resolve(id === 'testPartnerId'))
}));
describe('test mock', () => {
it('should print true', async () => {
console.log(await isTestPartnerId(null, null, 'testPartnerId'));
});
});
看起来应该在控制台上打印“true”,但我得到的是“undefined”。调试测试表明 isTestPartnerId
实际上是未定义的。
我正在将 typescript 与 ts-jest 29.0.5(最新)一起使用。
知道我在这里做错了什么吗?
最佳答案
我找到了答案。线索是这样的:https://stackoverflow.com/a/70270857/662970
就我而言,我们在 package.json
的 jest 配置中有 "restoreMocks": true
。删除该行就解决了该问题。
关于typescript - 为什么将 jest 升级到 29.5.0 会破坏我的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75857967/