1.简介
React Router依靠React上下文来工作。这会影响您如何测试使用我们的组件的组件。
2.语境
如果尝试对呈现a<Link>
或a<Route>
等的组件之一进行单元测试,则会收到一些有关上下文的错误和警告。
虽然你可能受到诱惑,自己存根出路由器背景下,我们建议你换你的单元测试中的一个Router
组成部分:基础Router
与history
支柱,或者<StaticRouter>
,<MemoryRouter>
或者<BrowserRouter>
(如果window.history
是作为测试环境全球)。
建议使用MemoryRouter
或自定义history
,以便能够在两次测试之间重置路由器。
class Sidebar extends Component {
// ...
render() {
return (
<div>
<button onClick={this.toggleExpand}>expand</button>
<ul>
{users.map(user => (
<li>
<Link to={user.path}>{user.name}</Link>
</