我有一个使用 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/