
tdd-cycle
by Fortiz2305
Repository which contains my dotfiles
SKILL.md
name: tdd-cycle description: Use when implementing any feature or bugfix, before writing implementation code. Execute strict Red-Green-Refactor TDD cycle following industry testing standards. Write the test first, watch it fail, write minimal code to pass; ensures tests actually verify behavior by requiring failure first.
TDD Cycle Skill
Execute ONE Red-Green-Refactor cycle following testing best practices.
Prerequisites
Reference: See testing-reference.md (in this folder) for complete testing patterns and guidelines.
The Cycle
RED Phase (Write Failing Test)
-
Write ONE failing test:
- Use Given-When-Then structure (see
testing-reference.md) - Format:
it('should [behavior] when [condition]', () => { ... }) - Check for test utilities FIRST - use existing factories/builders when available
- Avoid manually constructing complex test data
- Use Given-When-Then structure (see
-
Run the test - verify it fails for the RIGHT reason:
# Run your project's test command npm test path/to/test pytest path/to/test.py(Adjust to your project's test framework)
-
Verify failure message makes sense - if not, improve the test
GREEN Phase (Make It Pass)
-
Write minimum code to make the test pass:
- Follow your project's architecture and conventions
- Write only what's needed to pass the test
- Don't add extra features "while you're there"
-
Run the test again - verify it passes
-
Run full test suite - verify no regressions:
# Run your full test suite npm test pytest
REFACTOR Phase (Improve Structure)
-
Look for improvements (only if needed):
- Remove duplication
- Improve naming for clarity
- Extract methods/functions
- Simplify conditionals
- Improve type definitions
-
Run tests after EACH refactoring - must stay green
-
Commit the change:
# Use feat: for new features git commit -m "feat: [description]" # Use fix: for bug fixes git commit -m "fix: [description]" # Use test: for test additions git commit -m "test: [description]"
Critical Rules
- ✅ Write ONE test at a time (never batch multiple tests)
- ✅ Test MUST fail before implementation (verify RED phase)
- ✅ Write MINIMUM code to pass (resist gold-plating)
- ✅ Run tests after EVERY change
- ✅ Use test utilities (factories/builders) when available
- ✅ Follow Given-When-Then with blank lines, NO comments
Example Cycle
// RED: Write failing test
describe('ShoppingCart', () => {
it('should calculate total when items are added', () => {
const cart = new ShoppingCart();
const item1 = { id: '1', price: 10.00 };
const item2 = { id: '2', price: 15.50 };
cart.addItem(item1);
cart.addItem(item2);
expect(cart.getTotal()).toBe(25.50);
});
});
// GREEN: Implement minimum code to pass
// REFACTOR: Improve code quality while tests stay green
When to Repeat
After completing one RED-GREEN-REFACTOR cycle:
- If there's more functionality to add, start a new cycle
- If the feature is complete, mark the todo as completed
- Each cycle should be small and focused on one behavior
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon