我正在将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。
知道我哪里做错了吗
1条答案
按热度按时间klr1opcd1#
我找到了答案。线索是这样的:https://stackoverflow.com/a/70270857/662970
在我的例子中,我们在
package.json
的jest配置中有"restoreMocks": true
。删除该行就解决了这个问题。