外观
JUnit、Instrumentation、Espresso、UIAutomator,怎么分工?
标准回答
JUnit 是编写和运行测试的框架;本地测试通常在电脑 JVM 上跑;Instrumentation 测试在 Android 设备或模拟器上跑。Espresso 适合应用内界面交互,UIAutomator 适合跨应用和系统界面操作。
- 单元、集成、端到端描述测试范围;本地与设备描述运行环境,两组分类不能混为一谈。
- 纯业务逻辑尽量不依赖 Android 环境,让反馈更快;框架行为用合适环境验证。
- 测试清单覆盖成功、拒绝、超时、取消、生命周期与兼容性,不只验证理想路径。
通俗例子
温度上下限逻辑放到本地 JUnit 测;真实数据库与系统接口放到设备测试;“点按钮后显示设置成功”用 Espresso;跳到系统权限页面再返回,可以用 UIAutomator。
深入解释
**两组分类不要混为一谈:**单元、集成、端到端说的是测试范围;本地 JVM 与设备测试说的是在哪里运行。一个小的数据库测试也可能需要真实 Android 环境。
**四个名称怎样对应:**JUnit 提供测试组织与断言等基础;Instrumentation 让测试运行在设备环境;Espresso 和 UIAutomator 提供不同范围的界面操作能力,它们可以组合。
易混淆点
截图中的 Instrument 可按 Android Instrumentation 测试理解;它与 JUnit、UI 框架不是同一维度。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
job-A09