我有一个看起来像这样的文件
// ./someFile.ts
import { someModule as metric } from 'somePackage';
const someOtherStuff = ...
export { metric, someOtherStuff };
在测试中,我可以像这样成功地在metric
上模拟一个函数
import { metric } from '@common/someFile';
metric.increment = jest.fn().mockImplementation(() => null);
几乎在每种情况下,我都将使用此精确模拟,所以我尝试了手动模拟
// ./__mocks__/someFile.ts
const metric = { increment = jest.fn().mockImplementation(() => null); };
export { metric };
但是,这似乎无法自动运行。
每次测试都需要打电话给jest.mock('./someFile');
吗?开玩笑的文档对此感到困惑(似乎建议仅对于核心Node模块才需要这样做)。当您清除开玩笑的模拟游戏时,还会清除手动模拟游戏吗?
在我的原始模块中,someOtherStuff
在这里发生了什么?如果我想保持原样,我是否需要将其导入,然后在模拟中重新导出?