你们如何测试复杂的反应原生应用程序?

Posted

技术标签:

【中文标题】你们如何测试复杂的反应原生应用程序?【英文标题】:How are you guys testing complex react native applications? 【发布时间】:2020-07-07 17:10:25 【问题描述】:

我是唯一一个觉得为复杂的 React Native 应用程序创建有用的测试实际上是不可能的?

你们如何测试具有大量本机依赖项的应用程序?

如果我尝试将 jest 与酶一起使用或反应原生测试库,我最终会使用 jest.mock() 来模拟我的大部分组件逻辑,以至于测试实际上感觉无用。大多数原生组件都无法模拟,我不得不花费大部分时间来研究如何模拟原生库而不是编写测试。

我有一些使用 detox 的测试很有用,但它们运行时间太长,而且大多数时候它们超级不稳定且速度慢,尤其是在 CI/CD 中,比如 bitrise,我发现这是最好的选择与排毒一起使用。

Detox 不适用于 Web 视图和警报等一些重要组件。设置嘲笑也是一件很痛苦的事情。

我没有在网上找到任何内容来教授如何在真实的 React Native 应用程序上进行测试。

我发现在 react web 应用程序中使用 react 测试库或酶要容易得多,而且测试更有意义。

人们真的没有在 react native 中进行测试吗?

每次我部署新版本时,我如何确保在没有手动 QA 的情况下事情不会中断?

这不是咆哮,我只是想听听那些拥有复杂生产应用程序的人的意见,因为我很绝望,需要爱。

【问题讨论】:

【参考方案1】:

我最终使用 Appium(Python 或节点)+ AWS Device Farm 进行 e2e 测试。设置它可能会很痛苦,而且也需要一些时间,但它在每次发布时为我们节省了大量时间。能够在这么多设备上并行测试真是太好了。

由于我也在使用 bitrise,我可以告诉您集成非常好。我在媒体上写了一篇关于我的经历的短文: https://medium.com/horizon-alpha/optimizing-react-native-development-process-with-bitbucket-and-bitrise-io-d0aebe641db8

你可以试一试。

【讨论】:

以上是关于你们如何测试复杂的反应原生应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何从反应原生模拟 PermissionAndroid

有没有办法使用排毒来测试反应原生中闪屏的发生?

如何使用 Android Studio 调试原生反应原生库?

当它被包装在提供者组件中时,如何使用 mocha + 酶 + chai 测试反应原生组件

我们可以在 Android 和 iOS 原生应用程序中使用 detox 工具吗? (不是反应本机)

如何从反应原生页面快速打开现有的 ViewController?