2017-09-15 151 views
0

我有一個按鈕React組件,我想用Jest測試。在Jest測試中模擬用戶與React組件的交互

我想測試用戶與組件的交互。

當用戶點擊Jest測試中的按鈕時,如何測試按鈕的動作。

我的測試是這樣的:

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() {} 

回答

1

可以使用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) 

    }) 
}) 

嘲笑功能,您可以跟隨進一步的說明here

+0

是'find'和'simulate' React方法嗎? – Ben

+1

對不起,我忘了提。 'find'和'simulate'來自'酶' – mersocarlin

+0

謝謝。而原生'onclick'事件不能直接使用,因爲你正在處理一個包裝原生DOM的React組件? – Ben

相關問題