1. 单测/集成/E2E 分层生成:Claude Code Sub-agent 的 3 层测试用例构建实践
大多数人以为 Sub-agent 是用来“加速写测试”的——我试过,结果在第 7 个模块上线前,CI 流水线里跑出了 3 类诡异失败:单测通过但集成环境报空指针、E2E 断言的 DOM 节点名和实际渲染对不上、Mock 数据格式在集成层被悄悄篡改。查了两天才发现,不是代码逻辑错了,是三个 Sub-agent 各自维护一套上下文,彼此之间根本没同步 schema 定义。Claude Code 默认的 sub-agent 调度机制,本质上是个“自治小团队”,没人指定谁管数据契约、谁守接口边界、谁盯端到端流程。这篇文章不讲怎么让 AI 多快,只讲怎么让它稳——稳在分层、稳在契约、稳在可追溯。如果你的项目已有 5+ 个微服务、前端用 Vue3 + Pinia、后端是 Spring Boot 3.x + Gradle 多模块,且正在为测试覆盖率卡在 68% 上不去发愁,那这篇就是为你写的。它不替代你写断言,但能让你把精力从“补 mock”转移到“设计边界”。
1.1 为什么必须分三层?不是让 AI 一次性生成更省事吗?
这个问题我问过自己三次。第一次是在用 Claude Code 一键生成“全量测试”后,发现生成的单测里混着 HTTP 调用、数据库连接和浏览器等待逻辑;第二次是当 E2E 测试脚本里突然出现expect(response.status).toBe(200)——而这个 response 根本不是来自 Cypress,是它从某个集成测试片段里抄来的;第三次是安全扫描报告标红:test-utils.ts被意外打包进生产 bundle,因为 Sub-a