请先向我提出3个关键问题,待我回答后再生成完整单元测试。① 输入参数中哪些是真实对象、哪些应Mock?② 返回值中哪些字段是核心断言点?③ 需覆盖哪些异常分支?
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Claude在生成单元测试前主动确认测试范围、依赖模拟方式和断言重点,而不是直接输出代码——这能避免写完才发现测试目标错位、Mock漏项或断言覆盖不全。
用追问式提示词结构触发Claude主动提问
在提示词开头明确声明交互模式:“请先向我提出3个关键问题,待我回答后再生成完整单元测试”。Claude会立即停止生成代码,转而列出问题清单。不加这句话,它默认“直接写”,后续追问会被当作补充指令而非必要前置动作。
问题数量必须具体指定(如“3个”),模糊说“几个问题”会导致Claude只问1个或跳过追问直接输出。
设计高质量追问问题的三个锚点
方法一:聚焦函数边界
① 这个函数的输入参数中,哪些是真实对象(如数据库连接、HTTP客户端),哪些应被模拟?【若未区分,生成的测试可能因调用真实服务而失败】
② 函数返回值中,哪些字段是业务核心断言点?例如是否只需验证status_code为200,还是必须校验response.body中的user_id字段?
③ 是否存在需要特殊处理的异常分支?比如网络超时、JSON解析失败、空指针等——这些分支是否要求单独测试用例?
方法二:依赖注入路径确认
直接问:“当前代码中,该函数所在类的构造函数是否接收外部依赖(如Repository、Logger)?如果是,请列出所有依赖类型。”
这一步能迫使Claude识别出隐式依赖。如果用户回答“是”,它后续生成的测试就会用Mockito或pytest-mock注入假对象;如果回答“否”,则转向对函数内部逻辑的纯单元测试。
追问后生成测试的触发时机
你只需对Claude提出的每个问题给出简短回答,例如:“① HTTP客户端需Mock,数据库连接走真实H2内存库;② 断言response.data.items长度和首项name字段;③ 需覆盖网络超时异常。”
Claude收到全部回答后自动开始生成,无需额外指令。此时它生成的测试文件会严格按你确认的Mock策略、断言字段和异常路径来组织用例。


















