Test-Driven Development
SkillDev toolsWrite tests before implementation code. Use when starting new features or fixing bugs. Covers Red-Green-Refactor cycle and TDD best practices.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Test-Driven Development skill
What this skill tells your AI
The instructions your AI receives, as published by nguyenhuuca/assessment in .claude/skills/core-engineering/test-driven-development/SKILL.md and read by ahel’s review.
The TDD Cycle
- Red: Write a failing test
- Green: Write minimal code to pass
- Refactor: Improve code while keeping tests green
Workflows
- Write Test: Write a test that describes desired behavior
- Run Test: Verify it fails (Red)
- Implement: Write minimal code to pass
- Run Test: Verify it passes (Green)
- Refactor: Clean up while tests stay green
- Repeat: Next test case
TDD Example (Java + JUnit 5)
Step 1: Red - Write Failing Test
class CalculatorTest {
@Test
void add_TwoNumbers_ReturnsSum() {
// Arrange
Calculator calc = new Calculator();
// Act
int result = calc.add(2, 3);
// Assert
assertThat(result).isEqualTo(5);
}
}
// Run: mvn test
// FAIL - Cannot resolve symbol 'Calculator'
Step 2: Green - Minimal Implementation
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
// Run: mvn test
// PASS ✓
Step 3: Refactor (if needed)
Code is already clean, move to next test.
Step 4: Next Test
@Test
void subtract_TwoNumbers_ReturnsDifference() {
// Arrange
Calculator calc = new Calculator();
// Act
int result = calc.subtract(5, 3);
// Assert
assertThat(result).isEqualTo(2);
}
// Run: mvn test
// FAIL - Cannot resolve method 'subtract' in 'Calculator'
Step 5: Implement Subtract
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
// Run: mvn test
// PASS ✓ (2 tests passing)
TDD Benefits
- Design Feedback: Tests reveal design issues early
- Documentation: Tests document expected behavior
- Confidence: Refactor fearlessly with test safety net
- Focus: One behavior at a time
TDD Tips
- Start Simple: Begin with the simplest test case
- One Assert: Each test should verify one behavior
- Descriptive Names: Test names are documentation
- No Logic in Tests: Tests should be obvious
- Fast Feedback: Tests should run in milliseconds
When to Use TDD
- New features with clear requirements
- Bug fixes (write failing test first)
- Complex business logic
- API contract development
When TDD is Less Useful
- Exploratory/prototype code
- UI layout changes
- Simple CRUD operations
Signals
- GitHub stars
- 34
- Forks
- 25
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
test-driven-development-nguyenhuuca- Source
- github.com/nguyenhuuca/assessment