reactjs - global.location 在 Jest 测试中不起作用

标签 reactjs jsdom jestjs

我有一个使用 Webpack 构建的应用程序,并使用 Jest 进行了测试。最近我将 Jest 更新到了 0.8.0 版本,将 Node 更新到了 5 版本。

我对从 global.location 读取的多个组件进行了测试。以前,我会自己设置 global.location,如下所示:

global.location = {
  hash: '#hash'
};

在升级之前,这一切都运行良好;现在没有任何组件使用全局工作,当我打印 global.location 时,我得到:

Location {}

现在似乎有一些外部库试图模拟窗口的位置对象...有什么想法如何处理这个问题吗?

最佳答案

好吧,我在写问题时就想到了这一点:^P

问题似乎在于 Jest 使用的 jsdom 在较新的版本中试图模拟位置对象。源代码表明该实现仍然有点不成熟,但我能够解决我的特定问题:

global.location.replace('#hash');

关于reactjs - global.location 在 Jest 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33904097/

相关文章:

javascript - ReactJS 在组件之间传递数据(搜索栏)

Django rest-auth Token 认证

reactjs - 使用 React 显示来自 fetch api 的数据

jestjs - 开 Jest `document`

javascript - 获取连接 ECONNREFUSED 127.0.0.1 :80 error when running supertest

javascript - 输入文本子组件在从父组件传递 onChange 函数时不显示任何文本

reactjs - 如何测试动态页面标题?

node.js - node.js 上的 jsdom + canvas : toDataURL() error

typescript - TypeScript 中的模块解析如何处理全局值(即描述)?

reactjs - 在 Jest : NavigationContainer causes console error 中异步测试 React Navigation 5