第一章 课程介绍与环境搭建
大家好,我是你们这次课程的老朋友。做 Android 开发这么多年,我最头疼的事情之一就是接口测试。尤其是那些依赖后端返回数据的场景——明明本地逻辑写好了,调试时却总被网络环境、后台状态卡住。后来我逐渐摸索出一套方案:用 Retrofit 做网络层,再配合 Mock 回放机制,把自动化测试跑起来。今天我们就从最基础的东西开始聊起。
Retrofit 基本概念
Retrofit 是什么?说白了就是一个网络请求的封装框架。你在 Java 或 Kotlin 里定义一个接口,加几个注解,它就能帮你生成 HTTP 请求的代码。我记得我第一家公司还在用原生的 HttpURLConnection,那代码写起来又长又容易出错。直到后来用了 Retrofit,代码量直接砍了一半。
它的核心思想很简单:把 HTTP API 转换成 Java 接口的调用。你只需要定义好接口方法,加上 @GET、@POST 这样的注解,剩下的编解码、线程切换 Retrofit 都帮你处理了。举个例子:
public interface ApiService {
@GET("users/{id}")
Call<User> getUser(@Path("id") int userId);
}
这行代码背后对应的就是一次 GET 请求。你调用 getUser(123),Retrofit 就会发请求到 /users/123 并把返回的 JSON 解析成 User 对象。嗯,这里要注意:Retrofit 本身不负责网络通讯,它依赖 OkHttp 做底层。所以很多时候我们说“Retrofit + OkHttp”是标准组合。
Mock 回放测试的价值
光会发请求还不够。真到测试环节,问题就来了——后端还没写好怎么办?接口返回的数据不稳定怎么办?我在项目中就吃过这个亏:联调时后端突然改了个字段名,我这边解析直接崩了。从那以后我意识到,必须有一种方式能把真实的响应“存下来”,然后在测试时“放回去”。这就是 Mock 回放的核心价值。
简单说,Mock 回放就是把一次真实的网络请求响应拦截下来,保存成本地文件。下次同样的请求再进来,直接返回这个文件里的数据,不再真的访问网络。
| 对比项 | 传统 Mock 手写 | Mock 回放 |
|---|---|---|
| 数据准确性 | 靠人构造,容易偏离真实 | 基于真实响应,100% 还原 |
| 维护成本 | 每改接口都要改 Mock 文件 | 重新录制一次就行 |
| 场景覆盖 | 很难模拟所有边界情况 | 可录制多种状态(成功、失败、超时) |
| 集成自动化 | 需要额外断言逻辑 | 天然适合 CI 流水线 |
你想想看,如果有一个工具,能自动把每次手动测试时的网络交互记录下来,然后在回归测试时自动回放,那多省心。我后来在好几家公司的项目里都推广了这个方案,联调效率至少提升了一倍。
开发环境准备
好了,理论讲完,得动手了。工欲善其事,必先利其器。我们先把开发环境搭起来。我个人建议按这个顺序来:
- JDK —— Java 语言的基础环境。Retrofit 虽然是支持 Kotlin 的,但底层还是跑在 JVM 上,所以 JDK 必须配好。
- Gradle —— Android 项目构建工具。我们用它来管理依赖、配置插件。
- Android Studio —— 官方 IDE,集成了模拟器、调试器、Gradle 插件,开发必备。
我曾经遇到过新手在 JDK 版本上踩坑:用了太高或太低的版本,Gradle 编译报各种莫名其妙的错。这里我直接给出一份经过我验证过的组合:
| 组件 | 推荐版本 | 说明 |
|---|---|---|
| JDK | 11 或 17 | 长期支持版,兼容性好 |
| Gradle | 8.x | 配合 AGP 8.x 使用 |
| Android Studio | 2024.1 及以上 | 最新稳定版即可 |
| AGP | 8.2+ | Android Gradle Plugin |
小技巧:配置 JAVA_HOME 环境变量时,路径里不要带空格和中文。我以前用“D:\Program Files”这种路径,结果 Gradle 解析脚本时报了个很诡异的错误,白白浪费了半天时间。
一步步搭建
下面我手把手带你把环境配好。
- 安装 JDK:去 Oracle 或 Adoptium 下载 JDK 11,安装后配置 JAVA_HOME。在命令行输入
java -version,看到版本号就成功了。 - 安装 Android Studio:从官网下载,安装时勾选“Android Virtual Device”。启动后它会自动下载最新的 Android SDK,这一步需要联网,耐心等(我建议喝杯咖啡)。
- 创建项目:新建一个 Empty Activity 项目,语言我习惯用 Kotlin,最低 API 选 24 以上。
- 添加 Retrofit 依赖:在
build.gradle.kts(Module)里添加:
dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
}
注意:版本号一定要统一!Retrofit 2.x 的行号包是 com.squareup.retrofit2,不是 com.squareup.retrofit(那是 1.x 的)。我之前因为不小心写错了,编译一直报找不到类,排查了半天才发现是坐标写错了。
依赖加完后,Sync Now 一下。你会看到 Gradle 开始下载。等它跑完,环境就算齐活了。
最后,我用一张图把本章的知识点串起来——你看完应该能对整个课程需要什么、怎么配合有个直观印象。
环境搭好了,接下来我们就可以动手实现真正的 Mock 拦截器和回放逻辑了。不过先把今天的基础打牢,后面才能跑得快。你也去试试配一下,有任何问题欢迎在评论区留言,我看到都会回复。