【发布时间】:2017-07-16 07:01:43
【问题描述】:
我正在尝试冒险,并尝试在我的个人项目中获得 100% 的代码覆盖率。而且我无法解释如何使用jest、enzyme 和react-native 模拟点击事件的文档。
<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%托管你的函数
标签: unit-testing testing tdd jestjs enzyme