javascript - Jest 无法识别外部打字稿模块
问题描述
我有一些通过 AMD 定义的运行时可导入模块导入。一切都按预期工作,但我无法在测试中模拟任何运行时模块。
没有模拟的错误消息:Cannot find module 'MyModule' from ...
当我尝试使用jest.mock
该模块时,我也会收到相同的错误消息。只是错误发生在测试文件中。
// globals.d.ts
declare module 'config' {
const val: IConfig;
export default val;
}
// main.ts
/// <reference path="./globals.d.ts" />
import config from 'config';
[...]
// main.spec.ts
import { main } from "./main.ts"
[...]
解决方案
jest.mock
预期存在一个被模拟的模块。不存在的模拟模块应标记为虚拟:
jest.mock('MyModule', () => ..., {virtual: true});
推荐阅读
- sql - MariaDB/Mediawiki 中的多行正则表达式匹配
- python - 使用 make_axes_locatable 和固定的 imshow 纵横比将颜色条添加到 matplotlib 轴
- azure - 为什么在尝试安装 Windows VM 时 Azure 中没有资源组?
- asp.net - .NET Core URL 重写,用于从 Web 表单迁移到 .NET Core
- php - 自定义运输方式插件中的 WooCommerce 运输成本计算
- php - 如何在 Laravel 资源中为 parent::toArray 添加键
- mysql - Mysql 查询编号分组行
- android - Android 谷歌地图崩溃:com.google.android.gms.dynamite_mapsdynamite Firebase
- php - WooCommerce - 在迷你购物车中显示自定义价格
- c# - solace - 故障转移连接