我对何时使用仪器测试和何时使用单元测试感到困惑

问题描述 投票:0回答:1

现在有了AndroidX测试框架,我们可以使用Robolectric后端将Espresso测试作为单元测试运行。但是对于何时使用仪器测试和何时使用单元测试感到困惑。

假设我们有两个屏幕,MovieListActivityMovieDetailActivity。当我单击MovieListActivity中的项目时,该电影的详细信息将显示在MovieDetailActivity中。

现在,在这种情况下,可能的单元测试和可能的仪器测试是什么?

例如,我可以将仪器测试写到

  • 检查电影是否列出
  • 单击电影进入详细屏幕
  • 详细信息屏幕正确显示了详细信息。

但是现在,这些测试也可以作为单元测试运行(因为我们使用的是Android X测试框架),而且它更快,因为我们不在设备/仿真器中运行测试。那么,什么使测试有资格进行仪器测试呢?

如果我想同时进行单元测试和仪器测试,该怎么办?

[由于我们使用的是Android X测试框架,因此可以通过将相同的单元测试文件复制到androidTest文件夹来作为工具测试来运行。这使文件重复,并使测试用例难以维护。 (例如,如果我在单元test文件夹中进行编辑,则应该在androidTest文件中进行相同的修改。)

  • 有什么方法可以将测试标记为仪器测试和单元测试?
  • 如果这是不好的做法,那么最好的做法是什么,其他的最佳做法应该是什么使用Android X测试框架时考虑过?
android unit-testing testing robolectric androidx-test
1个回答
-1
投票

Espresso是适用于Android应用程序的自动化UI测试框架。它们是用Java编写的脚本,用于在模拟环境或物理设备上模拟与应用程序运行时的交互。

Espresso测试是“工具化的”,这意味着测试可以使用有关应用程序的内部工作(上下文),例如对象名称,运行时变量和其他符号信息。

单元测试专注于代码的一小部分(即类级别的方法),并提供基本验证,以确保代码按预期运行。 Espresso测试提供了UI是否按预期工作的基本验证。

排序:如果要测试任何逻辑,可以将单元测试用于Ui测试,可以使用浓缩咖啡。

© www.soinside.com 2019 - 2024. All rights reserved.