跳到主内容
测试

测试生成 Prompt:写出真正能 catch bug 的测试

AI 写的测试经常是覆盖率好看但抓不到 bug。这条 prompt 强制 AI 生成有意义的断言和边界测试用例,覆盖正常路径、异常路径和边界条件,提升测试质量和 bug 检出率。适合 Claude Code / Cursor / Aider。

用法

选中要测的函数,配合下面的 prompt:

Prompt

请为下面这个函数生成单元测试。要求:

**测试框架**:{vitest / jest / pytest / go test — 替换}

**必须覆盖**:
1. **Happy path**:典型输入 → 期望输出
2. **Edge cases**(每条单独一个 test):
   - 空输入(`null` / `undefined` / `[]` / `''`)
   - 极小值 / 极大值(如果是数值/字符串长度有意义)
   - 边界值(off-by-one 候选)
   - 异常输入(类型错误 / 格式错误)
3. **错误处理**:触发函数内部 error path,断言抛出正确的错误类型 + message

**铁律**:
1. **断言要强**。不要只 `expect(result).toBeDefined()`——要 `toEqual` / `toBe` 具体值
2. **每个 test 一个 assertion focus**。不要一个 `it()` 测三件事
3. **测试名要描述行为**:"returns null when input is empty array",**不是** "test 1"
4. **不要 mock 不必要的东西**。能用真实输入就用真实输入

**输出**:
- 完整的 test 文件
- 列出"我故意没测的场景" + 原因(性能测试 / 集成测试 / 不可达分支)

函数:
```
<paste here>
```

为什么有效

  • "必须覆盖"列出具体类型,避免 AI 只写 happy path
  • "断言要强"是关键——AI 默认倾向 toBeDefined,但这种断言捕捉不到 bug
  • "故意没测的场景 + 原因"暴露 AI 的盲点,给你机会补全

进阶

如果是改 bug 后想加防回归测试:

"我刚修了一个 bug:{bug 描述}。请只写能 catch 这个 bug 回归的最小测试集。不要写覆盖整个函数的全套测试——那是别的 PR。"

防回归测试要精准,不要被全套测试稀释。

反例(AI 默认会写的烂版本)

默认输出it('should work', () => { expect(add(1,2)).toBe(3) })——只测了 happy path,改名、传 null、传边界值全都没覆盖,覆盖率好看但 catch 不到 bug。

加了 prompt 之后:至少覆盖正常路径、边界值(0 / 负数 / 极大值)、异常路径(null / 类型错误)、以及一个「回归用」的历史 bug 用例,并说明每条测试想防住什么。

延伸阅读

相关对比

Aider vs Claude Code:终端 AI 编程双雄怎么选

Aider vs Claude Code 2026 选型对比:开源 BYOK 多模型 vs Anthropic 订阅长任务 Agent,从编程能力、多模型支持、价格、Git 集成、国内可用性和适合人群判断,帮你选对终端 AI 编程工具。

Aider vs Continue:终端会话派还是 IDE 自建派?2026 对比

Aider 与 Continue 2026 选型对比:两者都是开源、模型可换的路线,但 Aider 是终端里的 Git-native 会话工具,每次改动自动生成一个 commit;Continue 是 IDE 内的可配置助手,强调自定义与自托管。从 6 个维度给出明确取舍。

Aider vs Crush:CLI pair programmer vs 终端 TUI agent(2026 实测选型)

Aider vs Crush 2026 选型对比:Git 原生 AI pair programmer vs Charmbracelet 终端 TUI agent。从工作哲学、多模型、Git 集成、LSP/MCP、价格和国内可用性帮你选对终端 AI 编程工具。

Aider vs OpenCode:两个开源终端 Agent,选哪个?2026 对比

Aider 与 OpenCode 2026 选型对比:两者都是开源终端 agent、都支持换模型,但 Aider 以 Git-native 工作流与成熟的多语言支持见长,OpenCode 主打模型无关、本地优先与终端交互体验。从 6 个维度给出明确取舍建议。

Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比

Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。

Claude Code vs Cline:CLI AI Agent 怎么选?2026 对比

Claude Code vs Cline 2026 选型对比:Anthropic 官方闭源 CLI Agent vs Apache-2.0 开源 VS Code 插件。从模型绑定、工作流、MCP 支持、价格、隐私和适合人群 6 个维度帮你选对 CLI AI 编程工具。

相关评测