不变式失败:您不应该在<Link>
之外使用<Router>
我该怎么办?
483 | state, 484 | }) => { > 485 | const component = mount(<Testrun {...props} />); | ^ 486 | return component; 487 | }; 488 | it('should have an input for the username', function () {
我在测试中遇到错误:不变失败:您不应该在之外使用我该怎么办? 483 |州484 | })=> {> 485 | ...
<Testrun>
嵌套在某些父级中,并且还包裹有某些父级,并且某些父级也具有<BrowserRouter>
或<HashRouter>
。它们提供了Context API所需的上下文(我的意思是React的<Link>
。)>因此您需要在测试中使用某些路由器版本。就像一样容易
const component = mount(<MemoryRouter><Testrun {...props} /></MemoryRouter>);
您可以使用任何其他路由器,但MemoryRouter
由于易于配置和控制,因此在测试中特别有用。
将组件移动到组件内部。