J'ai des difficultés à tester mon composant (hérité) avec Jest / Enzyme.
Il ressemble à ceci: Les méthodes sont transmises comme des accessoires! Strong> dans ce cas lorsque la valeur change, et mon test ressemble à ceci: p> poignée code> sera appelé et
ceci.props ['Dropdown1'] (valeur) code> est appelé. p>
"devDependencies": {
...
"enzyme-to-json": "^3.4.0",
"jest": "^24.9.0",
"react": "^16.9.0",
"react-dom": "^16.9.0",
3 Réponses :
Ce n'est pas un problème dans votre test, mais dans votre composant. L'erreur est probablement probablement dans ceci.props [nom] (valeur); code>, je ne pense pas que ce soit ce que vous voulez faire. Somettin comme
ceci.props.save (valeur) code> semble plus cohérent. P>
Ajoutez ceci à votre constructeur:
this.handleSelect = this.handleSelect.bind( this );
Ah, je vois. Quels accessoires passez-vous à ce composant?
Je passe plusieurs méthodes au composant correspondant au nom de la liste déroulante. Donc, dans ce cas ceci.props ['Dropdown1] code> est passé et appelé lorsque la valeur de liste déroulante change.
Si vous imprimez Ceci.Props ['Dropdown1'] CODE> Dans Handleselect, vous donne-t-il une fonction?
Cela fonctionne également autrement et n'échoue-t-il que dans le test?
On dirait que vous faites un test de l'unité au lieu d'un test d'intégration.
Normalement, vous devez tester le composant avec une fonction moquée comme pour les meilleures pratiques, pas les méthodes réelles des accessoires. Et vous pouvez également tester les fonctions des accessoires à différents endroits où il est défini. P>
Donc de votre contexte, vous pouvez vous moquer de poignée avec jest.fn () et juste test s'il est appelé lorsque vous mettez à jour la liste déroulante. évaluer. p>
C'est ce que j'essayais de comprendre! Merci beaucoup!
Où passez-vous la fonction du nom ProP?
Bind
poignées de main code> fonction aussi
En plus de cela, j'éviterais généralement le rendu peu profond pour les tests d'interaction. Utilisez
montage code>.
Bonjour, devrait être l'exportation Bouton Const = (accessoires) .. pas l'exportation de bouton const = ({access})