使用内置测试类验证漫画源可用性
为什么要测试
一个刚写完的自定义漫画源,至少需要验证以下三件事:
- 搜索能否返回结果:请求是否发出去了、JSON/HTML 能否正常解析
- 详情页能否拿到章节列表:点击漫画后能否正确拉出章节
- 阅读能否拿到图片列表:章节打开后能否拿到漫画图片 URL
任何一个环节挂了,这个源就不可用。测试是上线前的必要步骤。
测试基类结构
MyComic 的测试基础设施位于 common/src/main/java/top/luqichuang/common/tst/ 目录下:
BaseSourceTest.java:所有源测试的共同基类- 各具体源的测试类继承它(如
ComicTest.java用于漫画源测试)
测试文件位于 common/src/test/java/ 下,分为漫画、小说、番剧三种。
如何运行测试
步骤一:解开测试方法注释
测试方法默认是注释状态。进入对应的测试文件,解开对应测试方法体的注释。
步骤二:编译运行
在 Android Studio 中可以直接运行测试类;或者用 Gradle 命令行:
./gradlew :common:testDebugUnitTest
步骤三:查看测试输出
测试会依次执行搜索、详情、阅读三个阶段,并在控制台打印每个环节的请求 URL、解析结果、是否通过。
测试场景示例
以漫画源测试为例,典型的测试流程:
- 搜索测试:用一个通用关键词(如"斗破苍穹")搜索,验证返回的漫画列表非空、每个条目都有标题和封面 URL
- 详情测试:取搜索结果的第一条,请求其章节列表,验证章节数合理(一般长篇漫数百章节)
- 阅读测试:取最后一个章节,请求其图片 URL 列表,验证数量大于 0
常见测试失败原因
| 失败环节 | 可能原因 |
|---|---|
| 搜索返回空 | URL 拼错、解析规则不匹配、目标站反爬拦截 |
| 详情解析失败 | 漫画 ID 参数错误、章节列表 HTML/JSON 结构变化 |
| 阅读图片加载失败 | 图片 URL 拼接不完整、缺少 referer 头 |
测试过程是调试的黄金时期——等到打包进 APK 再用真机测,排查成本高得多。