gpt4 book ai didi

javascript - 为 Jest 的每个测试文件指定 window.location

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:24:38 26 4
gpt4 key购买 nike

我正在升级到 Jest 22,我遇到了一些关于模拟 window.location 的问题。以前这个方法还行,升级后就不行了。

Object.defineProperty(window.location, 'href', {
writable: true,
value: 'https://example.com/abc',
});

我已经阅读了 Jest 文档,有一种方法可以在 package.json 中模拟 window.location 作为这样的配置。

"jest": {
"testURL": "https://example.com/home"
}

如果所有测试都使用相同的 URL,这可以正常工作。

有什么方法可以在测试文件中模拟 window.location.href

我正在使用

"@types/jest": "^22.2.3",
"jest": "^22.4.3",
"@types/enzyme": "^3.1.10",
"enzyme": "^3.3.0",

更新

这是在我的组件中使用 window.location

const currentPage = window.location.href.match(/([^\/]*)\/*$/)[1];

最佳答案

Solution from jest collaborator for June 2019 :

delete global.window.location;
global.window = Object.create(window);
global.window.location = {
port: '123',
protocol: 'http:',
hostname: 'localhost',
}

关于javascript - 为 Jest 的每个测试文件指定 window.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com