test-driven-development
Enforce RED-GREEN-REFACTOR cycle. Use when implementing features, fixing bugs, or writing any production code.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Test-Driven Development
Write the test first. Watch it fail. Write minimal code to pass.
The Iron Law
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
Any code written before its corresponding test must be deleted entirely - no exceptions for "reference" or "adapting" existing work.
Red-Green-Refactor Cycle
RED: Write Failing Test
- Write ONE minimal failing test demonstrating desired behavior
- Use clear naming that describes the behavior
- Test real code, not mocks (mock only external dependencies)
- Focus on ONE behavior per test
Verify RED (CRITICAL)
Run tests and confirm:
- Test fails (not errors)
- Failure indicates missing feature
- Error message matches expectations
If test passes immediately → DELETE IT (it proves nothing)
GREEN: Make It Pass
- Implement the simplest code that passes the test
- Avoid over-engineering
- Don't add features not requested
- Keep scope narrow
Verify GREEN
- All tests pass
- No other tests broke
REFACTOR: Clean Up
- Clean up while ALL tests remain green
- Remove duplication (DRY)
- Improve naming
- Extract helpers if needed
Why Tests-First Matters
Tests written after code pass immediately, proving nothing about their validity. Tests-first:
- Force discovery of edge cases before implementation
- Provide systematic verification impossible with manual testing
- Document expected behavior
Common Rationalizations (ALL REJECTED)
| Excuse | Why It's Wrong |
|---|---|
| "Too simple to test" | Simple code still needs verification |
| "I'll test after" | Tests-after pass immediately, proving nothing |
| "Already manually tested" | Manual testing isn't repeatable or documented |
| "Deleting hours of work is wasteful" | Sunk cost fallacy - untested code is liability |
When to Use TDD
Always: New features, bug fixes, refactoring, behavior changes
Exceptions only: Throwaway prototypes, generated code, config files (with permission)
Red Flags Requiring Restart
- Code written before test
- Test passes immediately
- Can't explain why test should fail
- Rationalizing "just this once"
→ DELETE the code and recommence with failing test
When 3+ Test Fixes Fail
STOP. This signals an architectural problem:
- Return to investigation phase
- Question whether the underlying pattern is sound
- Discuss with user before attempting more fixes
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-28
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!