2
我試圖成爲冒險,即時嘗試獲得我的個人項目100%的代碼覆蓋率。我無法解釋如何使用jest
,enzyme
和react-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)
所以我的問題是如何選擇工具欄,這樣我可以點擊工具欄組件的按鈕。
如果使用'shallow'而不是'mount',發生了什麼情況 –
@AndreasKöberle問題是,如果你使用淺度,你不能完全測試整個生命週期,當你運行'jest --coverage'時,你將無法承載100%的功能 – jose920405
https://blog.joinroot.com/mounting-react-native-components-with-enzyme-and-jsdom/ – jose920405