typescript 为什么升级jest到29.5.0会破坏我的模拟?

vbkedwbf  于 2023-03-31  发布在  TypeScript
关注(0)|答案(1)|浏览(135)

我正在将jest从我的项目form 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实际上是undefined。
我在ts-jest 29.0.5(最新版本)中使用了typescript。
知道我哪里做错了吗

klr1opcd

klr1opcd1#

我找到了答案。线索是这样的:https://stackoverflow.com/a/70270857/662970
在我的例子中,我们在package.json的jest配置中有"restoreMocks": true。删除该行就解决了这个问题。

相关问题