【发布时间】:2022-11-12 07:26:27
【问题描述】:
我有一个考虑 URL 参数的 React 组件,然后在考虑该参数的情况下进行一些提取。默认情况下,如果未设置参数,则使用默认值。
问题是 Jest 似乎不会在每次测试后重置 href 属性,因此如果前一个测试导航到 my-url?some=param,下一个测试仍将设置 href。
这意味着在更改 href 与测试中的组件交互后,下一个测试将具有先前的值。这样做的一个副作用是如果未设置参数,我无法测试默认值,因为它将始终由先前的测试设置。
我试过的
beforeEach(() => {
window.location.assign('');
});
抛出错误Not implemented: navigation (except hash changes)。
beforeEach(() => {
window.location.href = '';
});
引发错误Not implemented: navigation (except hash changes)。
beforeEach(() => {
Object.defineProperty(window, 'location', {
value: {
href: ''
}
});
});
引发错误Cannot redefine property 'location'。
在所有这些情况下,它是空字符串 '' 还是像 http://localhost 这样的正确 URL 都没有关系。
问题
有没有办法在每次测试之前重置href 属性?我并不是要嘲笑它:它应该像默认行为一样工作,而只是在每次测试之前重置它。
这不应该是 Jest 的默认行为吗?自动清理 DOM 但将 href 保留为先前测试的值有什么用?
【问题讨论】:
标签: reactjs jestjs navigation location-href