J'utilise Jest and Enzyme pour tester un composant Form, et j'ai du mal à faire fonctionner la simulation de clic. Pour référence: Button
est un bouton de rebass style et existe sous la forme comme ceci:enzyme simuler 'click' ne fonctionne pas quand il le faut
<Button
type="reset"
disabled={pristine || submitting}
onClick={() => onClose(dirty)}
>
est ici le test qui est défaillant:
it('should handle the onClose event',() => {
const onCloseSpy = jest.fn();
const renderedComponent = mount(renderFormUtil({ onClose: onCloseSpy }));
expect(onCloseSpy).not.toHaveBeenCalled();
console.log(renderedComponent.find(Form).props().onClose);
renderedComponent
.find(Button)
.first()
.simulate('click');
expect(onCloseSpy).toHaveBeenCalled();
});
Que faut-il noter ici, est que si je remplace la simuler la ligne avec ce qui suit:
renderedComponent
.find(Button)
.first()
.props()
.onClick();
puis soudainement mon test passe. Comment est-ce possible? Si le prop onClick est correct, cela ne signifie-t-il pas que l'événement click n'appelle pas le prop correctement?
Pourquoi utilisez-vous '.Find (ButtonSubmit)' dans un cas et '.Find (Button)' dans l'autre? Je ne sais pas à quoi ressemble Button, mais je ne m'attendrais pas au même résultat puisque vous testez deux composants différents. –
Désolé, ce sont le même composant-- Je voulais me débarrasser du mot Soumettre dans le nom du composant, par simplification –