【问题标题】:React Native Jest Enzyme Find and Press ComponentReact Native Jest Enzyme Find and Press 组件
【发布时间】:2017-07-16 07:01:43
【问题描述】:

我正在尝试冒险,并尝试在我的个人项目中获得 100% 的代码覆盖率。而且我无法解释如何使用jestenzymereact-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


【解决方案1】:

Mount 仅适用于 react-dom,不适用于 react-native

【讨论】:

    猜你喜欢
    • 2018-12-16
    • 2017-02-12
    • 1970-01-01
    • 2019-07-26
    • 2018-08-20
    • 1970-01-01
    • 2018-12-16
    • 2020-03-30
    • 1970-01-01
    相关资源
    最近更新 更多