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