2017-02-25 46 views
2

我試圖成爲冒險,即時嘗試獲得我的個人項目100%的代碼覆蓋率。我無法解釋如何使用jest,enzymereact-native來模擬點擊事件的文檔。反應本機Jest酶查找和按組件

<Screen.TopBar> 
    <Toolbar 
     leftElement="arrow-back" 
     onLeftElementPress={() => router.pop()} 
     centerElement={pageName} 
    /> 
</Screen.TopBar> 

這只是它的頂部,但我試圖模擬點擊該元素。

const wrapper = mount(
    <MockProvider store={store}> 
     <ThemeProvider uiTheme={uiTheme}> 
      <Category /> 
     </ThemeProvider> 
    </MockProvider> 
); 
expect(wrapper.find('Toolbar').length).toBe(1); 

我得到一個錯誤:

ReferenceError: document is not defined 

    at Object.renderIntoDocument (node_modules/react-dom/lib/ReactTestUtils.js:73:15) 
    at renderWithOptions (node_modules/enzyme/build/react-compat.js:187:26) 
    at new ReactWrapper (node_modules/enzyme/build/ReactWrapper.js:94:59) 
    at mount (node_modules/enzyme/build/mount.js:19:10) 
    at Object.<anonymous> (app/screens/category/tests/Category.test.js:32:30) 

所以我的問題是如何選擇工具欄,這樣我可以點擊工具欄組件的按鈕。

+0

如果使用'shallow'而不是'mount',發生了什麼情況 –

+0

@AndreasKöberle問題是,如果你使用淺度,你不能完全測試整個生命週期,當你運行'jest --coverage'時,你將無法承載100%的功能 – jose920405

+0

https://blog.joinroot.com/mounting-react-native-components-with-enzyme-and-jsdom/ – jose920405

回答

1

安裝僅適用於react-dom而不適用於react-native