testing - 如何对 native 应用程序进行自动设备测试?

标签 testing react-native automated-tests jestjs

我想为用 React Native 编写的应用程序创建自动测试。我只想测试逻辑(而不是 UI)。

Jest 似乎是在计算机上运行的单元甚至集成测试的绝佳解决方案。但我想在真实设备上测试该应用程序。我有一个没有 UI 的组件,它执行一些逻辑、与其他设备的无线通信等。我需要特别测试该通信,如果没有设备,这是无法完成的。

是否有任何框架或标准解决方案可以做到这一点?

最佳答案

好的,我做了关于测试 React Native 应用程序的研究。

目前 ReactNative 不提供可以在真实设备上运行集成(而非 UI)测试的平台独立测试框架。事实上有一个RCTTestRunner但它的功能有限,并且仅适用于 iOS 设备。

功能测试

有多种功能测试框架。这些测试主要依赖于UI组件,用于用户交互的黑盒测试。有两个成熟的跨平台框架可用于此目的:CalabashAppium 。 Appium 似乎是更好的解决方案,因为它是适用于两个平台的单一工具(Calabash 实际上是适用于 iOS 和 Android 的两个项目的集合)。此外,当 Calabash 仅支持 Ruby 时,Appium 支持多种语言(JavaScript、Python、Java...)。

还有一个Cavy该项目看起来很有前途,但以一种黑客的方式使用 React ref 生成函数,并且需要对应用程序代码进行多次修改。

但所有这些都只是为了进行 UI 测试。

解决方案

我用来测试应用程序逻辑的解决方案(不受 UI 更改的影响)如下。我创建了应用程序的特殊版本(通过创建新目标),该版本已用测试组件替换了主 UI 组件。该测试组件在应用程序的顶部运行。它只是触发测试并显示日志。然后,功能测试框架读取并解析这些日志以生成报告。

关于testing - 如何对 native 应用程序进行自动设备测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806729/

相关文章:

angularjs - 测试前端时重置单独的后端服务

java - 如何在 Eclipse 中获取调试 View ?

c - 使用 glib 测试框架时,g_test_set_nonfatal_assertions() 仍然中止(核心转储)

android - react native : Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=com. facebook.react :react-native:0. 71.0-rc.0)

javascript - 在 Cypress 测试中断言/检查 stub 请求的轮询率

testing - 我如何将 Jmeter 用作普通浏览器?

Java 日期问题,不断恢复到 1935 表格 2035

ios - FlatList 使用 Redux 重新渲染

javascript - 在 React Native 中从数组中随机选择图像

ruby - Rails 3 - 测试 Controller 的 GET 方法 - 尝试使用 JSON 并出现 406 错误