繁体   English   中英

什么是AndroidX.Test框架,它如何影响我的单元/机器人/咖啡测试?

[英]What is the AndroidX.Test Framework and how does it affect my unit/robolectric/espresso tests?

我已经通过Android文档中的Test Android Apps进行了测试 Google推出了AndroidX测试,但是我对其含义仍然感到困惑。

我将MVVM Android体系结构组件与ViewModel,LiveData一起使用。

我需要使用Android X Framework的哪些部分?

View(Activity.Fragments)->浓咖啡?

ViewModel(with LiveData)-> RoboElectric吗?

模型-> JUnit还是RoboElectric?

为什么Google仍然使我们对许多库感到困惑,为什么它们不能在同一个Framework(Espresso)下移动所有本地测试,工具测试以及所有内容?

Google测试团队对其测试框架AndroidX进行了许多改进。

为什么Google仍然对许多库感到困惑,为什么他们不能将所有本地测试,工具测试都移至同一Framework(Espresso)下?

实际上,他们使用AndroidX Test来解决这个问题!

首先,常规的“ Junit”单元测试保持不变。 您应该以与以前相同的方式在JVM上测试Java代码。

但是现在,借助AndroidX,他们已经使Robolectric 4.0 API与Espresso的相同,因此现在可以将您的Espresso测试作为Robolectric测试运行。 这意味着,在本地开发时,您可以更快地进行迭代,因为Instrumentation Tests可以运行得非常快,而不必在模拟器上运行。 这也使学习Robolectric变得容易得多,因为您可以使用与浓缩咖啡相同的API。

进入PR或CI阶段后,您可以提交在Robolectric JVM上运行的相同测试 ,以使用Espresso在真实设备上的CI上运行。

我建议查看“ 重新启动测试(使用AndroidX测试)(Android Dev Summit '18)”以获取更多背景信息。

在这张图片中,失败的UI和单元测试将代表相同的测试,但取决于您要运行的内容和运行时间,表示为Espresso / Robolectric Instrumentation Test。

在这张图片中,失败的UI和单元测试将代表相同的测试,但取决于您要运行的内容和时间,表示为Espresso / Robolectric Instrumentation Test。 为了清楚起见,在进行本地开发(尤其是使用TDD)时,您希望将其作为Robolectric运行。 准备提交PR时,您可以使用仿真器或真实设备在CI上运行相同的测试。

因此,尽管AndroidX.test可能令人困惑,但我建议观看该视频,以更好地了解Google使用该框架的意图。

另外,我同意他们可以提供有关使用新的Androidx.Test的更多示例和指导!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM