J'ai un composant fonctionnel et je voulais le tester avec la fonction maquette (démonstration simplifiée)
const remove = () => {
... do something
}
const removeButton = (props) => (
<Button onClick={() => remove()}>
Remove
</Button>
);
J'ai essayé avec ce cas de test
it('test remove button', () => {
const test = shallow(<removeButton/>)
const mockFunction = jest.fn()
test.instance().remove = mockFunction
test.find('Button').simulate('click')
expect(mockFunction).toHaveBeenCalled()
})
.instance (). remove n'a pas pu se moquer de la fonction car elle est hors de portée. Comment pourrais-je simuler la suppression de la fonction?
Vous devez déplacer le code fonctionnel dont vous avez besoin pour tester en dehors du composant et passer les fonctions comme accessoires. De cette façon, vous pouvez simuler les fonctions dans vos tests en les passant comme accessoires et le code du composant devient plus réutilisable.