# Dsh Test First

> 修复 bug 或实现新功能时使用：先写失败测试，再最小实现，最后重构。

- Skill: `hackerfish/dsh-test-first` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hackerfish/dsh-test-first`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hackerfish/dsh-test-first/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hackerFish (https://skillmd.com/u/hackerfish)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hackerfish/dsh-test-first

---


# 测试优先（红 → 绿 → 重构）

## 流程

1. **红**：先写一个描述期望行为的测试，运行确认它失败（证明测试真的在测）
2. **绿**：写最小实现让测试通过，不做任何多余设计
3. **重构**：在绿灯下改善结构，每步都保持测试通过

## 边界用例表（写测试时逐项过）

- 空输入、单元素、满容量
- 错误类型、缺字段、超长输入
- 重复调用、并发调用
- 权限不足、文件不存在、网络失败

## 运行

- Node 内置：`node --test`
- 项目用 vitest/jest 时跟随项目配置
- 只测公共行为，不测内部实现细节；覆盖率数字不设硬指标，关键路径必须覆盖

## 修复 bug 的额外要求

先写一个能复现该 bug 的失败测试，再修复；提交信息里写清复现路径。

