gpt4 book ai didi

android - 什么是 AndroidX.Test 框架,它如何影响我的单元/robolectric/espresso 测试?

转载 作者:行者123 更新时间:2023-12-01 23:12:14 35 4
gpt4 key购买 nike

我已经通过Test Android Apps在 Android 文档中。 Google 引入了 AndroidX 测试,但我仍然对它的含义感到非常困惑。

我正在使用带有 ViewModel、LiveData 的 MVVM Android 架构组件。

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

View (Activity.Fragments)-> Espresso ?

ViewModel(带 LiveData)--> RoboElectric?

模型 --> JUnit 还是 RoboElectric?

为什么谷歌仍然让我们对很多库感到困惑,为什么他们不能将所有本地测试、仪器测试和所有东西都移动到同一个框架(Espresso)下?

最佳答案

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

Why Google still confusing with lot of libraries, why cant they move all Local test, Instrumentation test everything under same Framework(Espresso)?



使用 AndroidX Test,他们实际上正在尝试解决这个问题!

首先,常规的“Junit”单元测试没有改变。您应该以与您相同的方式在 JVM 上测试您的 java 代码。

但是现在,借助 AndroidX,他们使 Robolectric 4.0 API 与 Espresso 的 API 相同,因此现在可以将 Espresso 测试作为 Robolectric 测试运行。这意味着在本地开发时,您可以更快地迭代,因为仪器测试可以运行得更快,而不必在模拟器上运行。它还使学习 Robolectric 变得更加容易,因为您可以使用与 espresso 相同的 API。

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

我建议查看 Testing Rebooted (with AndroidX Test) (Android Dev Summit '18)了解更多上下文。

In this picture, the failing UI and Unit tests would represent the same test but represented as Espresso/Robolectric Instrumentation Test depending on what you want to run and when

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

因此,虽然 AndroidX.test 可能会令人困惑,但我建议观看此视频,以便更多地了解 Google 对该框架的 Intent 。

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

关于android - 什么是 AndroidX.Test 框架,它如何影响我的单元/robolectric/espresso 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405681/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com