首页 > 解决方案 > 手动模拟的行为与带有工厂参数的 jest.Mock 不同

问题描述

对于熟悉 jest 内部原理的人来说,这主要是一个问题。

我注意到在我的一个测试设置中,使用jest.mock('module-name', return () => { console.log("whatever"); });而不是手动模拟实现了模拟节点模块(不是 NodeJs 原生模块)的预期结果。

一个非常重要的细节是,加载我希望模拟的模块的代码实际上以一种特殊的方式加载它:

我可以想象为什么手动模拟无法检测到这种行为,但我不明白为什么jest.mock使用模块工厂进行模拟确实有效!

编辑这里是 GitHub 上展示问题的代码链接

标签: javascriptunit-testingtestingjestjs

解决方案


推荐阅读