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

Ram*_*sad -1 android android-testing android-espresso androidx

我已经通过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)下移动所有本地测试,工具测试以及所有内容?

Mar*_*Han 7

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的更多示例和指导!