反应测试库:测试路由器重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反应测试库:测试路由器重定向相关的知识,希望对你有一定的参考价值。

如何在重定向后测试路由器链接是否已更改?

单击按钮后,它应重定向到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

以上是关于反应测试库:测试路由器重定向的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器重定向在私有路由中不起作用

反应路由器重定向到主页

根据登录状态使用路由器重定向用户

codeigniter 301 使用路由器重定向旧网址,并且没有重定向

Symfony路由器重定向到https应用程序上的http

链接不使用 React DOM 路由器重定向