javascript - 我想测试路线是否存在
问题描述
我想测试组件中是否存在路由。应用程序应在特定路径上呈现特定组件。
应用程序.js
return (
<Router>
<Header jsTrendingTopics={this.props.data} />
<Switch>
<Route exact path="/" render={() => <Dashboard jsTrendingTopics={this.props.data} />} />
<Route exact
path="/language/:languagename"
render={(props) => this.handleTopic(props)
}
/>
</Switch>
</Router>
)
}
我希望测试返回应该在该特定路由上呈现的组件。
解决方案
我认为这MemoryRouter
就是initialEntries={['/]}
你要找的。
import Dashboard from ...
jest.mock('path to Dashboard component');
Dashboard.mockImplementationOnce(() => <div>Dashboard</div>);
render(
<MemoryRouter initialEntries={['/']}>
<App/>
</MemoryRouter>
);
expect(screen.getByText("Dashboard").toBeInTheDocument()
您可以阅读此文档以获取更多示例 https://javascript.plainenglish.io/testing-react-router-with-jest-bc13d367bad
推荐阅读
- spring - 如何在同一个spring boot项目中使用EhCache(本地)和RedisCache(远程)?
- android-studio - 无法激活 intellij 产品上的快捷方式
- javascript - 如何使用与至少一个匹配的字符串数组过滤数据?
- c# - 如何禁用回车键
- ios - 当应用程序语言与系统语言不同时更改iOS系统提示语言
- ruby-on-rails - 每个线程的“单例”
- javascript - Thingsboard_导航到新仪表板状态_Widget 自定义操作_Javascript 代码
- c# - 从仅包含不同项目的两个列表创建新列表?
- excel - 合并方法 - VBA
- css - BEM 中的元素是否需要在块内?