javascript - 手动模拟的行为与带有工厂参数的 jest.Mock 不同
问题描述
对于熟悉 jest 内部原理的人来说,这主要是一个问题。
我注意到在我的一个测试设置中,使用jest.mock('module-name', return () => { console.log("whatever"); });
而不是手动模拟实现了模拟节点模块(不是 NodeJs 原生模块)的预期结果。
一个非常重要的细节是,加载我希望模拟的模块的代码实际上以一种特殊的方式加载它:
- 获取节点模块包中的文件列表
- 寻找一个名为
index.js
- 打电话
require(PATH_TO_INDEX_JS)
我可以想象为什么手动模拟无法检测到这种行为,但我不明白为什么jest.mock
使用模块工厂进行模拟确实有效!
解决方案
推荐阅读
- html - 如何编写类似棋盘格的 CSS 网格网站?
- php - Wordpress“无法访问站点”错误,无法访问 FTP 或仪表板
- python - json.decoder.JSONDecodeError:期望':'分隔符:第 1 行第 57358 列(字符 57357)
- java - 如何使条目无效并从咖啡因缓存返回其值?
- c++ - 在 C++ 中编译 sio_client 和 semaphore
- java - Sarxos 网络摄像头库
- flutter - I/颤振(10710):输入“列表”
' 不是类型 'Map 的子类型 ' - swift - 调用中的参数缺少参数,绑定值问题
- kentico - 如何通过在 Kentico 管理工具中构建导入/导出实用程序/功能将 csv 文件数据存储到数据库中?
- ruby-on-rails - Ruby/Faraday:如何翻译和解析响应正文?