Skip to content
阅读进度

JUnit、Instrumentation、Espresso、UIAutomator,怎么分工? ​

返回 架构与 SDK 目录

标准回答 ​

JUnit 是编写和运行测试的框架;本地测试通常在电脑 JVM 上跑;Instrumentation 测试在 Android 设备或模拟器上跑。Espresso 适合应用内界面交互,UIAutomator 适合跨应用和系统界面操作。

  • 单元、集成、端到端描述测试范围;本地与设备描述运行环境,两组分类不能混为一谈。
  • 纯业务逻辑尽量不依赖 Android 环境,让反馈更快;框架行为用合适环境验证。
  • 测试清单覆盖成功、拒绝、超时、取消、生命周期与兼容性,不只验证理想路径。

通俗例子 ​

温度上下限逻辑放到本地 JUnit 测;真实数据库与系统接口放到设备测试;“点按钮后显示设置成功”用 Espresso;跳到系统权限页面再返回,可以用 UIAutomator。

深入解释 ​

**两组分类不要混为一谈:**单元、集成、端到端说的是测试范围;本地 JVM 与设备测试说的是在哪里运行。一个小的数据库测试也可能需要真实 Android 环境。

**四个名称怎样对应:**JUnit 提供测试组织与断言等基础;Instrumentation 让测试运行在设备环境;Espresso 和 UIAutomator 提供不同范围的界面操作能力,它们可以组合。

易混淆点 ​

截图中的 Instrument 可按 Android Instrumentation 测试理解;它与 JUnit、UI 框架不是同一维度。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。