相关疑难解决方法(0)

在react-router的路由中进行基于路由的测试的推荐方法

我正在我的一个项目中使用react-testing-library,并尝试编写验证应用内路由的测试。

例如,测试 AccessDenied 页面上的按钮是否会将您带回主页。

我已经能够为我的应用程序组件成功编写这些类型的测试,因为它定义了所有应用程序路由。但是,如果 AccessDenied是这些路由之一,我需要如何设置测试来验证单击那里的按钮是否会将我路由回主页?

这是一个人为的例子:

应用程序.tsx

<>
  <Router>
    <Route exact path="/" component={Home} />
    <Route exact path="/access-denied" component={AccessDenied} />
  </Router>
  <Footer />
</>
Run Code Online (Sandbox Code Playgroud)

拒绝访问.tsx

<div>
  <div>Access Denied</div>
  <p>You don't have permission to view the requested page</p>
  <Link to="/">
    <button>Go Home</button>    <--- this is what i want tested
  </Link>
</div>
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,我的测试在内部工作的原因App.test.tsx是因为我的应用程序组件定义了其内部的路由,而我的AccessDenied只是其中之一。App.tsx但是,是否可以在我的测试中利用我定义的路由器AccessDenied.test.tsx?也许我处理这个问题的方式不正确?这就是我挣扎的地方。作为参考,这是我的工作App.test.tsx测试。

应用程序.test.tsx

describe('App', () => {
  it('should allow you to navigate to login', async () => {
    const …
Run Code Online (Sandbox Code Playgroud)

integration-testing unit-testing reactjs jestjs react-testing-library

2
推荐指数
1
解决办法
4910
查看次数