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

global.location not working in Jest tests

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

我测试了几个从 global.location 读取的组件。以前,我会这样设置 global.location 自己:

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

这在升级之前工作正常;现在 none 的组件使用全局工作,当我打印 global.location 时,我得到:

Location {}

似乎现在有一些外部库试图模拟 window 的位置对象...有什么处理方法吗?

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

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

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