我正在用酶和Jest开始测试。我想开始测试我在react-router 4中的路由。但是没有办法做到。有人可以帮忙吗?
这是我的 index.js
import Routes from './routes';
import store from './store';
import { Provider } from 'react-redux';
import './index.css';
ReactDOM.render(
<Provider store={ store }>
<Routes />
</Provider>,
document.getElementById('root')
);
我的路线文件
import React, { Component } from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import HomePage from '../components/pages/HomePage';
import ResultPage from '../components/pages/ResultPage';
class Routes extends Component {
render() {
return (
<BrowserRouter>
<div className="main-container">
<div>
<Link to="/home">Home</Link>
<Link to="/result">Result</Link>
</div>
<div className="main-content">
<Switch>
<Route path="/result" component={ ResultPage } />
<Route path="/" component={ HomePage } />
</Switch>
</div>
</div>
</BrowserRouter>
);
}
}
export default Routes;
我的路线测试文件
import React from 'react';
import { mount } from 'enzyme';
import { MemoryRouter } from 'react-router';
import Routes from './index';
import HomePage from '../components/pages/HomePage';
import '../setupTests'
it('The / path should render HomePage', () => {
const wrapper = mount(
<MemoryRouter initialEntries={[ '/' ]}>
<Routes/>
</MemoryRouter>
);
expect(wrapper.find(HomePage)).toHaveLength(1);
});
我收到如下错误-
●/路径应呈现主页
Invariant Violation: Could not find "store" in either the context or props of "Connect(HomePage)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(HomePage)".