| name | Development |
| description | Implement features using strict test-driven development. Use for the DEVELOP phase of XP workflow. |
Development (TDD)
Core Rules (Non-Negotiable)
- NEVER write production code without a failing test first
- One behaviour per test
- Write minimum code to make the test pass
- Run tests and verify green state before proceeding
The TDD Cycle
🔴 RED → Write ONE failing test
🟢 GREEN → Write MINIMUM code to pass
✅ VERIFY → Run all tests, confirm green
Detailed Steps
🔴 RED — Write a Failing Test
- Identify the next behaviour to implement
- Write a test that specifies that behaviour
- Run the test — it MUST fail
- If it passes, you've either:
- Written the wrong test, or
- The behaviour already exists
🟢 GREEN — Make It Pass
- Write the simplest code that makes the test pass
- Do not write more than necessary
- Do not refactor yet
- Run the test — it MUST pass
✅ VERIFY — Confirm Green State
- Run ALL tests, not just the new one
- All tests must pass
- If any fail, fix before continuing
What Counts as "Minimum Code"
- Hard-coded values are acceptable initially
- Duplication is acceptable initially
- "Ugly" code is acceptable initially
- Refactoring comes AFTER green using the refactoring skill
Test Naming
Use descriptive names that document behaviour:
// Good
"return empty list when library has no books"
"return error when member not found"
// Bad
"test1"
"testGetBooks"
Announcing Progress
🔴 RED → [behaviour being tested]
🟢 GREEN → Test passes
✅ VERIFY → All tests green
Common Mistakes
- Writing production code before the test
- Writing multiple tests before making any pass
- Refactoring while still red
- Skipping the verify step
- Writing tests that test implementation, not behaviour