出于某种原因,我在测试中无法访问路由器。
我在主容器中的渲染:
render() {
return (
<div className="AppEntry-scope">
<BrowserRouter>
<Switch>
<Route exact path="/" component={Dashboard} />
// ...Other routes
<Route component={FourOhFourNothinFound} />
</Switch>
</BrowserRouter>
</div>
);
}
我的测试:
describe('<Dashboard />', () => {
it('Should see dashboard', () => {
const wrapper = mount(
<MemoryRouter initialEntries={['/']}>
<AppEntry store={store} />
</MemoryRouter>,
);
expect(wrapper.find(Dashboard)).toBePresent();
});
});
另外,我试过了:
expect(wrapper.find(Dashboard).length).toBe(1);
我的测试没有看到仪表板组件。
在我的应用程序中,此路由有效,但我想设置路由测试。
顺便说一句,当我试图测试我未发现的组件FourOhFourNothinFound时 - 它起作用,似乎我的测试总是看到未发现的组件。有什么问题以及如何正确设置react-router测试?