2017-05-18 24 views
1

Ich habe einen Redux-Container, den ich in meinem Testfall mounten möchte. Es hat eine Komponente, die die Verbindung react-router verwendet. Montage der Behälter mir die Geschichte nicht definiert Fehler warf, nachdem diese https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/testing.md Lesen ich MemoryRouter umgesetzt, jetzt die Geschichte Fehler weg ist, aber ich folgende Fehler bekommen:MemoryRouter TypeError: Eigenschaft 'Pfadname' von undefined kann nicht gelesen werden

TypeError: Cannot read property 'pathname' of undefined 
     at Object.createPath (node_modules/history/PathUtils.js:47:26) 
     at Link.render (node_modules/react-router-dom/Link.js:76:44) 

Mein Testfall:

it('should load popup component',() => { 
    const container = mount(
     <Provider store={ store }> 
      <MemoryRouter initialIndex='2' initialEntries={ ['/', 'home'] } > 
       <HomeContainer /> 
      </MemoryRouter> 
     </Provider> 
    ); 
    assert.equal(container.find('PopUp').length, 1, 'Popup component is not mounted'); 
}); 

Meine Komponente:

class Home extends Component { 
    componentWillMount() { 
     this.props.init(); 
    } 

    componentDidMount() { 
     document.title = 'Home'; 
    } 

    render() { 
     return (
      <div> 
       <Popup /> 
      </div> 
     ); 
    } 
} 
export default Home; 

Mein Container:

const mapStateToProps = state => ({ 
    data: state.mainReducer.data 
}); 
const HomeContainer = connect(mapStateToProps, { init })(Home); 
export default HomeContainer; 

Antwort

2

Dieser Fehler ist, weil Ihre <Link to="undefined" />, stellen Sie sicher, dass der to Wert gültig und nicht undefiniert/leer ist.

+0

Ja, Sie haben Recht, meine URL war undefined. Vielen Dank :) –

Verwandte Themen