无法使用酶测试反应路由器4

时间:2018-08-21 16:47:12

标签: javascript reactjs react-router enzyme

我正在用酶和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)".

0 个答案:

没有答案