系统化测试你的ActivityAndroid官方培训课程中文版从单元测试到功能测试实战指南【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址: https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese还在靠手动点点点验证你的Android应用吗Android Activity 测试是保证应用质量的关键一环。本指南带你系统学习 Android官方培训课程中文版 中「测试你的Activity」章节的完整实战流程从搭建测试环境、编写单元测试、UI组件测试到功能测试让每一个Activity的行为都变得可验证、可信赖。 为什么测试如此重要完备的测试能帮我们在开发过程中尽早发现漏洞并让代码在不同Android设备上表现一致。测试用例还可以作为活文档描述应用组件的预期行为。详见课程索引。一、快速搭建测试环境运行测试的第一步是准备好开发环境和一台可用的设备真机或虚拟设备。课程支持两种方式方式适合人群说明IDE 图形界面新手用EclipseADT插件可一键生成测试项目Android Studio 用户可在AVD Manager中管理虚拟设备命令行 Gradle进阶执行./gradlew build connectedCheck构建并运行测试在AVD ManagerAndroid Virtual Device Manager中你可以查看和管理所有虚拟设备点击绿色播放按钮即可启动一台设备用于测试 详细步骤请阅读建立测试环境。二、创建你的第一个Activity测试用例测试的核心思路是为每个Activity建立一个独立的测试类。课程遵循两条命名约定测试代码放在独立的测试包中应用包名 .tests测试类名 被测试类名 Test后缀如MyFirstTestActivityTest。在Android Studio中创建待测试的Activity也很简单——选择 Blank Activity填写名称即可一个完整的测试用例包含三部分推荐用TDD思想先写测试再写代码测试数据集Fixture覆写setUp()方法初始化被测试的Activity引用和UI组件测试前提testPreconditions验证数据准备无误防止测试因环境问题误报失败测试方法用 JUnit 断言如assertEquals验证实际行为是否符合预期。完整写法见创建与执行测试用例。三、单元测试快速隔离地验证Activity单元测试是速度最快的一类测试它把Activity从系统其他部分隔离出来快速验证单个方法或组件的正确性不依赖系统资源和网络。典型场景验证一个按钮是否正确触发了Intent去启动下一个Activity。测试类继承ActivityUnitTestCaseActivity不会被系统自动启动而是通过显式调用startActivity()来启动再用getStartedActivityIntent()拿到发出的Intent断言其载荷数据是否准确。⚠️ 注意单元测试不适合测试与系统有复杂交互的UI那需要UI测试若涉及外部依赖可借助 Mock 框架。详见创建单元测试。四、UI测试像真实用户一样操作界面️UI测试白盒测试用来验证按钮、复选框、文本框等界面组件的真实表现常用目标包括验证按钮启动时在正确位置显示用ViewAsserts.assertOnScreen()验证TextView初始状态是否隐藏验证点击按钮后预期文本是否正确显示用TouchUtils.clickView()模拟点击。两个关键细节新手容易踩坑触摸模式在setUp()中先调用setActivityInitialTouchMode(true)防止人为焦点干扰测试测试注解用SmallTest/MediumTest/LargeTest按执行耗时给测试分级方便按需快速执行。方法详解见测试UI组件。五、功能测试验证Activity之间的协同功能测试关注的是整体协同用户执行UI交互时目标Activity是否正确启动、数据是否按预期传递。它基于ActivityInstrumentationTestCase2可以与Android系统通信、发送键盘输入和点击事件。课程以发送消息为例点击发送按钮 → 验证ReceiverActivity被正确启动 → 验证目标页面收到的数据内容。两个核心工具ActivityMonitor注册监视器当匹配的Activity启动时记录碰撞次数用断言验证是否确实启动Instrumentation通过runOnMainSync()让输入框获得焦点再用sendStringSync()向EditText打字完整模拟用户输入。下面这张图展示的正是功能测试要验证的典型场景——用户点击SEND后从第一个页面跳转到显示消息的新Activity完整示例见创建功能测试。六、一张表掌握Activity测试全貌测试类型核心基类验证目标速度单元测试ActivityUnitTestCase隔离验证状态与Intent⚡ 最快UI测试ActivityInstrumentationTestCase2界面组件的显示与交互 中等功能测试ActivityInstrumentationTestCase2多Activity协同与数据传递 较慢学习路径建议先读建立测试环境 → 创建与执行测试用例 掌握骨架 → 再按 单元测试、UI测试、功能测试 的顺序逐层深入。更完整的测试体系介绍可参考测试程序章节。 更多基础知识可回顾Android入门基础例如管理Activity的生命周期——理解生命周期才能写好针对各生命周期的测试。【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址: https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
3步搞定华硕笔记本电池保修查询与监控最佳实践 3步搞定华硕笔记本电池保修查询与监控最佳实践 很多刚入行的朋友,手里拿着代码敲得很顺,一听说要落地个真实场景的项目就懵了。比如家里那台华硕笔记本,电池用久了掉电快,想查查还在不在保修期内,顺便监控一下健康度,结果发现官方渠道查起来麻烦,数据… · 2026/9/22 9:31:32
信不信:3个实战项目教你搞定API变更焦虑 信不信:3个实战项目教你搞定API变更焦虑 版本升级后 API 全变了,你的代码还在用旧接口硬扛吗?很多开发者在接手 实战项目… · 2026/9/22 9:31:26
3个致命坑:搭建数据分析平台实战项目时新手必看的避坑指南 3个致命坑:搭建数据分析平台实战项目时新手必看的避坑指南 学会 Pandas 的 groupby 和 merge ,就能搭建生产级 数据分析平台 了吗?大错特错。 很多开发者陷入一个怪圈:语法题刷得飞起,LeetCode… · 2026/9/22 9:31:20
MCP 天气 demo 的 qwen-max 调用,Base URL 改填 TaoToken /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/22 10:14:36
3分钟吃透昆特算法最佳实践面试突击 3分钟吃透昆特算法最佳实践面试突击 官方文档动辄几百页,看完脑子还是浆糊?别急,直接看这篇【昆特】算法最佳实践。 很多刚入行的同学,面对“昆特”这种听起来高大上的概念,第一反应是打开官方Wiki。结果呢?看了半小时,只记住了“分布式一致性”… · 2026/9/22 10:14:23
国产模型包揽前三:DeepSeek V4.1 Flash首次登顶OpenRouter周榜 截至9月20日的OpenRouter周度榜单,出现了一个标志性的变化。DeepSeek V4.1 Flash以15.8万亿Token首次登顶周榜第一,环比增长219%。智谱GLM 5.3 Flash以14.1万亿Token位居第二,腾讯Hy4 preview以12.5万亿Token排名第三。GPT-5.6 Luna跌至第四&… · 2026/9/22 10:14:17
5个电影海报图片处理坑,新手避坑指南 5个电影海报图片处理坑,新手避坑指南 刚写完代码,一运行屏幕直接炸了。满屏红色的 StackTrace 滚得比弹幕还快,什么 NullPointerException 、 ImageIO.read() returned null 、… · 2026/9/22 0:00:07
注册微信公众账号:一文搞懂从0到1全流程 注册微信公众账号:一文搞懂从0到1全流程 复制来的代码跑不通,报错信息满屏飞,到底卡在哪?别急,咱们先停下手里的调试。很多开发者觉得注册微信公众账号只是填个表单、传个身份证那么简单,真上手才发现坑深不见底。今天这篇 一文搞懂… · 2026/9/22 0:00:07