web-dev-qa-db-fra.com

plaisanterie / fonction simulée d'enzyme dans le composant fonctionnel

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?

7
user10200079

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.

0
Alex W