javascript - Jest 无法读取未定义的属性“导入”
问题描述
我有以下代码来异步加载依赖项:
declare global {
interface Window {
System: System.Module
}
}
const fooService = window.System.import('@internal/foo-service').then(module => module.FooService)
// ^ Jest trips up here
async function func1() {
(await fooService).doBar()
…
}
async function func2() {
(await fooService).doBar2()
…
}
感谢Bergi ,这很好用,但 Jest 绊倒了window.System.import
,给了我错误Cannot read property 'import' of undefined
。我怎样才能正确地模拟这个?
解决方案
可以像这样模拟 window 属性:
import { System } from 'systemjs'
Object.defineProperty(window, 'System', { value: System })
出于某种原因,我无法解释,这需要在正在测试的组件的导入(!)之前发生。
推荐阅读
- javascript - 如何在 div 中选择选中的输入以显示在另一个 div 中?(没有javascript)
- c# - 如何使用 C# XDocument 读取 xml 文件?
- nats.io - 使用 NATS 流媒体服务器我可以拥有多少个频道?
- flutter - 如何使用颤动中的按钮更改火灾存储中的数据?
- html - 如何为多个链接使用伪类?
- database - 如何为flutter做数据库
- python - 如何显示存储在 QuerySet 对象中的模型的属性?
- mysql - 对整个表运行 sql 查询
- c# - 使用 linq 通过 NHibernate 从数据库中删除前 100 条记录
- ubuntu-18.04 - 如何将已安装和映射的逻辑卷从一个卷组/物理卷移动到另一个