2017-09-15 1 views
0

J'ai un bouton React élément que je veux tester à l'aide Jest.interaction de l'utilisateur avec un composant Simuler React dans un test Jest

Je souhaite tester les interactions de l'utilisateur avec le composant.

Comment puis-je tester l'action du bouton lorsque l'utilisateur clique sur le bouton dans un test Jest.

Mon test ressemble à ceci:

describe('My button component',() => { 
    it('does something when it is clicked',() => { 
     const comp = (<MyButton onClick={onClick}></MyButton>); 
     // ... how can I simulate a user click and assert the change in the DOM? 
    }); 
}); 

function onClick() {} 

Répondre

1

Vous pouvez se moquer de la fonction à l'aide jest.fn()

describe('My button component',() => { 
    it('does something when it is clicked',() => { 
    const mockOnClick = jest.fn() 
    const comp = (<MyButton onClick={mockOnClick}></MyButton>) 

    component.find(MyButton).simulate('click') 
    expect(mockOnClick.mock.calls.length).toBe(1) 

    }) 
}) 

Vous pouvez suivre d'autres instructions here.

+0

Les méthodes React 'find' et' simulate' sont-elles? – Ben

+1

Désolé, j'ai oublié de mentionner. 'trouver' et' simuler' proviennent de 'enzyme' – mersocarlin

+0

Merci. Et l'événement 'onclick' natif ne peut pas être utilisé directement parce que vous traitez avec un composant React qui enveloppe le DOM natif? – Ben