以最小投入建立可持续回归保护,优先覆盖高风险核心路径,避免后续改动引入隐性崩溃和协议回归。
目录建议:app/src/test/java/...
目标文件:app/src/main/java/cn/com/omnimind/omnibot/DevServerManager.kt
测试点:
- 端口占用时自动递增重试逻辑。
isAddressInUseError对不同异常链识别正确。startServer/stopServer状态切换与幂等行为。
目标文件:app/src/main/java/cn/com/omnimind/omnibot/OmniDevServer.kt
测试点:
- 缺失必要参数时返回 400(如
clickNode、inputText)。 - 启用
apiKey后无/错Authorization返回 401。 /health在启用鉴权时仍可访问。
目标文件:app/src/main/java/cn/com/omnimind/omnibot/controller/screenshot/OmniScreenshotController.kt(内含 ImageUtils)
测试点:
- 质量参数边界(1/100)生效。
- 缩放开关与缩放比例(1-100)生效。
目标文件:app/src/main/java/cn/com/omnimind/omnibot/controller/screenshot/OmniScreenshotController.kt
测试点:
sanitizeXmlString能清洗非法 XML 字符。serializeXml输出包含关键节点属性。
目录建议:app/src/androidTest/java/...
目标文件:app/src/main/java/cn/com/omnimind/omnibot/MainActivity.kt
测试点:
MainActivity可启动且不崩溃。
目标文件:app/src/main/java/cn/com/omnimind/omnibot/MainActivity.kt、app/src/main/java/cn/com/omnimind/omnibot/OmniOperatorService.kt
测试点:
- 无障碍状态查询分支可调用。
- 电池优化状态查询分支可调用。
目录建议:flutter_module/test/...
目标文件:flutter_module/lib/services/history_service.dart
测试点:
- 去重逻辑正确。
- 新消息置顶。
- 最多保留 3 条。
- 空字符串不入库。
目标文件:flutter_module/lib/pages/settings_page.dart
测试点:
- 截图质量值 clamp 到 1-100。
- 缩放值 clamp 到 1-100。
- 开关变化后触发保存与平台通道调用(MethodChannel mock)。
目标文件:flutter_module/lib/pages/home_page.dart
测试点:
- 空消息发送被拦截。
- DevServer 运行时移动端发送被拦截并提示。
目录建议:integrations/clawdbot/omni-operator/test/...
目标文件:integrations/clawdbot/omni-operator/src/client.ts
测试点:
buildUrl拼接正确。- 超时返回统一失败结构。
- 非 2xx 响应转换为失败结构。
formatImageResult对 data URI 与 MIME 识别正确。
- Android JVM:8-12 个用例。
- Android Instrumented:2-4 个烟雾用例。
- Flutter:8-10 个用例。
- TypeScript 插件:6-8 个用例。
总计建议:25-35 个基础用例。
- CI 至少新增并通过:Android 单测、Flutter test、TS test 三类任务。
- P0 清单中的测试全部落地且稳定通过。
- 任一核心回归(鉴权、参数校验、消息历史、URL 构造)可被自动测试捕获。