2017-09-27 2 views
0

Ceci est la méthode à l'intérieur du composant, je suis en train de tester, mais je reçois cette erreur: {TypeError: Impossible de lire la propriété « push » undefined}Comment tester la méthode suivante à l'intérieur d'un composant avec jest et enzyme?

setQuery(newQueryElement) 
    //merge together the current query with the new query element 
    var currentQuery = QueryString.parse(this.state.currentProjectQuery); 
    Object.assign(currentQuery, newQueryElement); 

    //now turn the query into a query string and navigate to it 
    var queryString = QueryString.stringify(currentQuery); 
    this.props.history.push({ 
     pathname: this.props.location.pathname, 
     search: "?" + queryString 
    }); 
} 
+0

pouvez-vous ajouter le code de votre test existant qui ne fonctionne pas? –

+0

Cet élément est-il destiné à être utilisé comme itinéraire? –

Répondre

0

Vous devez se moquer de votre appareil avec accessoire history:

const history = [] 

const wrapper = shallow(<YourComponent history={history} /> 

Ensuite, vous pouvez tester votre objet history comme ceci:

expect(history).toHaveLength(1) 
+0

cela ne fonctionne pas. Il dit {TypeError: Impossible de lire la propriété 'search' de undefined}. Aussi je veux tester si c'est une fonction ou non et la queryString est correctement construite – Dilip

+0

Pouvez-vous ajouter votre composant complet et tester pour de meilleurs détails? Composant – imcvampire

+0

: https://pastebin.com/0C5ULBTD – Dilip