test-driven-development
Solid在实现任何功能或修复 bug 时使用,在编写实现代码之前
AI & Automation 4,380 stars
425 forks Updated 1 weeks ago MIT
Install
Quality Score: 90/100
Stars 20%
Recency 20%
Frontmatter 20%
Documentation 15%
Issue Health 10%
License 10%
Description 5%
Skill Content
# 测试驱动开发(TDD)
## 概述
先写测试。看它失败。写最少的代码让它通过。
**核心原则:** 如果你没有看到测试失败,你就不知道它是否测试了正确的东西。
**违反规则的字面意思就是违反规则的精神。**
## 何时使用
**始终使用:**
- 新功能
- Bug 修复
- 重构
- 行为变更
**例外(需询问你的人类伙伴):**
- 一次性原型
- 生成的代码
- 配置文件
想着"就这一次跳过 TDD"?停下来。那是在给自己找借口。
## 铁律
```
没有失败的测试,就不写生产代码
```
先写了代码再写测试?删掉它。从头来过。
**没有例外:**
- 不要保留作为"参考"
- 不要在写测试时"改编"它
- 不要看它
- 删除就是删除
从测试出发,重新实现。句号。
## 红-绿-重构
```dot
digraph tdd_cycle {
rankdir=LR;
red [label="红灯\n编写失败的测试", shape=box, style=filled, fillcolor="#ffcccc"];
verify_red [label="验证正确失败", shape=diamond];
green [label="绿灯\n最少代码", shape=box, style=filled, fillcolor="#ccffcc"];
verify_green [label="验证通过\n全部绿灯", shape=diamond];
refactor [label="重构\n清理代码", shape=box, style=filled, fillcolor="#ccccff"];
next [label="下一个", shape=ellipse];
red -> verify_red;
verify_red -> green [label="是"];
verify_red -> red [label="错误的\n失败"];
green -> verify_green;
verify_green -> refactor [label="是"];
verify_green -> green [label="否"];
refactor -> verify_green [label="保持\n绿灯"];
verify_green -> next;
next -> red;
}
```
### 红灯 - 编写失败的测试
写一个最小的测试来展示期望行为。
<Good>
```typescript
test('retries failed operations 3 times', async () => {
let attempts = 0;
const operation = () => {
attempts++;
if (attempts < 3) throw new Error('fail');
return 'success';
};
const result = await retryOperation(operation);
expect(result).toBe('success');
expect(attempts).toBe(3);
});
```
名称清晰,测试真实行为,只测一件事
</Good>
<Bad>
```t...
Details
- Author
- jnMetaCode
- Repository
- jnMetaCode/superpowers-zh
- Created
- 2 months ago
- Last Updated
- 1 weeks ago
- Language
- Shell
- License
- MIT
Similar Skills
Semantically similar based on skill content — not just same category
Testing & QA Listed
test-driven-development
在实现任何功能或修复 bug 时使用,在编写实现代码之前
0 Updated 4 days ago
xjxj71 AI & Automation Listed
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code
1 Updated 2 days ago
MARUCIE AI & Automation Listed
tdd-workflow
Use when implementing any feature or bugfix, before writing implementation code - write the test first, watch it fail, write minimal code to pass; ensures tests actually verify behavior by requiring failure first. Enforces RED-GREEN-REFACTOR cycle with iron-law compliance.
36 Updated yesterday
huangwb8 Testing & QA Listed
tdd-enforcer
强制执行测试驱动开发 (TDD) 工作流,使用 RED-GREEN-REFACTOR 循环确保测试先于代码编写。 三级严格度:Advisory(警告)、Strict(强制)、Superpowers(完整循环)。 使用场景:开发新功能时确保 TDD 最佳实践、代码质量审查。
1 Updated yesterday
10CG AI & Automation Featured
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code
39,350 Updated today
sickn33