10

现在测试 React Native 组件的首选方法似乎是结合使用 mocha、react-native-mock 和酶来浅渲染组件。

问题在于,浅层渲染只深入一层,有时组件具有嵌套视图,需要您测试额外的一两层。

理论上,酶支持mount()完全渲染组件,但实际上这会失败,因为react-native-mock 的Viewmock 不会递归到 children中。

鉴于这些限制,人们如何在比一个渲染级别更深的地方测试他们的组件?

4

2 回答 2

2

我们解决了mount()使用酶来完全渲染 React Native 组件的问题。我们写在https://blog.joinroot.com/mounting-react-native-components-with-enzyme-and-jsdom/

如果您使用我们的 fork,react-native-mock-render并设置 jsdom,您将能够挂载组件。

于 2017-03-21T17:17:35.210 回答
0

我能够通过将我的组件测试从 mocha 切换到 jest 并按照此处的说明进行快照测试来解决这个问题:https ://facebook.github.io/jest/docs/tutorial-react-native.html

然后我在 package.json 中将 jest 添加到我现有的测试目标中:

"test": mocha … && jest"

需要注意的一件事是,我确实必须按照说明为我期望开箱即用的东西添加模拟(例如。TextInput),以及moduleNameMapper用于映射一些不是的本机组件妥善解决。

于 2016-08-05T23:35:46.223 回答