我正在升级到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];