☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
✅ l12;❌ l23-l25:l24调用第三方api返回值不可mock,跳过断言;❌ l33:jest.mock()未启用;补救:test(‘returns null when input is undefined’, () => { expect(formatisodate(undefined)).tobenull(); })。
你要让gemini生成的测试覆盖说明能直接贴进pr描述或ci流水线文档里,而不是一堆“全面覆盖”“重点保障”这类评审时被秒拒的空话——它必须能回答“哪几行没测”“为什么这行不测”“下次谁来补”。
明确测试范围与代码锚点
第一步:在提示词开头就写死具体文件路径和函数名,例如“【src/utils/date-format.ts 中 formatISODate 函数】”,不写“相关工具函数”或“日期处理模块”。漏掉路径,Gemini会默认输出“核心逻辑层”这种虚词。
第二步:强制绑定Git diff上下文。加一句:“只分析本次提交中被修改的17行代码(commit hash: a3f8c21),忽略该文件其余142行。”【没有diff锚点,Gemini会自动扩展开阔到整个模块,产出“覆盖主流程+边界条件+异常分支”的万能套话】。
第三步:指定未覆盖行的呈现方式。要求:“未覆盖行必须标注为‘L23-L25’格式,且每行后紧跟1个真实原因,如‘L24:调用第三方API返回值不可mock,跳过断言’。”
禁用三类覆盖话术
方法一:直接删除模板化动词短语
在提示词末尾加硬指令:“禁止出现‘已覆盖’‘确保’‘涵盖’‘兼顾’四词;所有覆盖状态必须用‘✅ L12’或‘❌ L33’符号前置表达。”
方法二:封死抽象归因路径
写明:“原因描述中禁止出现‘业务复杂’‘逻辑耦合’‘历史包袱’等归因词;每条原因必须含一个可验证实体,如‘jest.mock() 未启用’‘nock 拦截失败’‘测试用例未传入 timezone=Asia/Shanghai’。”
使用 Google GenAI SDK 通过 Gemini 生成或编辑图像。当用户要求在 OpenCla… 中创建、转换、渲染或保存一张或多张图像时使用。
方法三:用布尔否定切断泛化出口
加一句:“若内容中出现‘全面’‘完整’‘充分’任一词,整段重写;若未出现具体行号、工具名、参数值,视为无效输出。”
植入可执行补救动作
第一步:要求每个❌行号后必须跟一条可粘贴执行的命令或代码片段。
例如:❌ L41 → 补充测试用例:test(‘returns null when input is undefined’, () => { expect(formatISODate(undefined)).toBeNull(); });
第二步:区分责任归属。
对 ❌ L29 这类需后端配合的场景,必须写明:“需后端提供 /api/v2/timezone/mock 接口(见 Jira TICKET-789),前端测试待该接口上线后补充。”
第三步:设定下次覆盖触发条件。
写清楚:“当 commit message 含 ‘[fix] timezone fallback’ 时,CI 自动运行 coverage:timezone 指令,覆盖 L28-L31。”










