我正在我的一个项目中使用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