TDD Workflow
Write tests first, code second.
- The TDD Cycle
🔴 RED → Write failing test ↓ 🟢 GREEN → Write minimal code to pass ↓ 🔵 REFACTOR → Improve code quality ↓ Repeat...
- The Three Laws of TDD
-
Write production code only to make a failing test pass
-
Write only enough test to demonstrate failure
-
Write only enough code to make the test pass
- RED Phase Principles
What to Write
Focus Example
Behavior "should add two numbers"
Edge cases "should handle empty input"
Error states "should throw for invalid data"
RED Phase Rules
-
Test must fail first
-
Test name describes expected behavior
-
One assertion per test (ideally)
- GREEN Phase Principles
Minimum Code
Principle Meaning
YAGNI You Aren't Gonna Need It
Simplest thing Write the minimum to pass
No optimization Just make it work
GREEN Phase Rules
-
Don't write unneeded code
-
Don't optimize yet
-
Pass the test, nothing more
- REFACTOR Phase Principles
What to Improve
Area Action
Duplication Extract common code
Naming Make intent clear
Structure Improve organization
Complexity Simplify logic
REFACTOR Rules
-
All tests must stay green
-
Small incremental changes
-
Commit after each refactor
- AAA Pattern
Every test follows:
Step Purpose
Arrange Set up test data
Act Execute code under test
Assert Verify expected outcome
- When to Use TDD
Scenario TDD Value
New feature High
Bug fix High (write test first)
Complex logic High
Exploratory Low (spike, then TDD)
UI layout Low
- Test Prioritization
Priority Test Type
1 Happy path
2 Error cases
3 Edge cases
4 Performance
- Anti-Patterns
❌ Don't ✅ Do
Skip the RED phase Watch test fail first
Write tests after Write tests before
Over-engineer initial Keep it simple
Multiple asserts One behavior per test
Test implementation Test behavior
- AI-Augmented TDD
Multi-Agent Pattern
Agent Role
Agent A Write failing tests (RED)
Agent B Implement to pass (GREEN)
Agent C Optimize (REFACTOR)
Remember: The test is the specification. If you can't write a test, you don't understand the requirement.