React-testing 库:测试路由器重定向
React-testing library: test router redirect
如何测试重定向后路由器 link 发生了变化?
点击按钮后,它应该重定向到另一个 url 以 "new_page" 结尾的页面。
这是我尝试过的方法,但我一直无法定义。
{getByTestId} = render(<MyButton />);
const mockBoxIconButton = getByTestId('box-icon-button');
mockBoxIconButton.click();
console.log(getByTestId('box-icon-button').closest('a')); # undefined
console.log(getByTestId('box-icon-button').location.href); # undefined
expect(
mockExtractionButton.getByTestId('box-icon-button').closest('a')
).toHaveAttribute('href', /http[a-zA-Z0-9:\/-]*new_page/);
});
react-testing-library
的目的不是测试代码实现,而是测试用户如何看待 UI 交互。所以在你的情况下,我建议不要在路由后寻找 /new_page
路径。而是测试用户在重定向到页面后将与什么进行交互。它可以是另一个按钮交互或标题、段落或跨度标记内的可读数据(无论您最重要的交互感觉如何)。
请参阅以下文章以更清楚地了解这一点:-
https://kentcdodds.com/blog/introducing-the-react-testing-library
如何测试重定向后路由器 link 发生了变化?
点击按钮后,它应该重定向到另一个 url 以 "new_page" 结尾的页面。
这是我尝试过的方法,但我一直无法定义。
{getByTestId} = render(<MyButton />);
const mockBoxIconButton = getByTestId('box-icon-button');
mockBoxIconButton.click();
console.log(getByTestId('box-icon-button').closest('a')); # undefined
console.log(getByTestId('box-icon-button').location.href); # undefined
expect(
mockExtractionButton.getByTestId('box-icon-button').closest('a')
).toHaveAttribute('href', /http[a-zA-Z0-9:\/-]*new_page/);
});
react-testing-library
的目的不是测试代码实现,而是测试用户如何看待 UI 交互。所以在你的情况下,我建议不要在路由后寻找 /new_page
路径。而是测试用户在重定向到页面后将与什么进行交互。它可以是另一个按钮交互或标题、段落或跨度标记内的可读数据(无论您最重要的交互感觉如何)。
请参阅以下文章以更清楚地了解这一点:-
https://kentcdodds.com/blog/introducing-the-react-testing-library