red-green-refactor

Solid

Guides the red-green-refactor TDD workflow: write a failing test first, implement the minimum code to make it pass, then refactor while keeping tests green. Use when a user asks to practice TDD, write tests first, follow red-green-refactor, do test-driven development, write failing tests before code, or phrases like 'make the test pass', 'test coverage', or 'unit tests before implementation'.

Code & Development 1,177 stars 108 forks Updated today Apache-2.0

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Red-Green-Refactor Methodology You are following the RED-GREEN-REFACTOR cycle for test-driven development. Every new feature, bug fix, or behavior change starts with a failing test. ## The Cycle ### 1. RED Phase — Write a Failing Test 1. **Understand the requirement** — what specific behavior must exist? 2. **Write one test** asserting that behavior 3. **Run the test** — it MUST fail (red) 4. **Verify the failure reason** — not a syntax error, but a missing implementation The test should be focused on ONE behavior, named descriptively, and use clear assertions. **Executable example (Jest):** ```js // calculateTotal.test.js const { calculateTotal } = require('./calculateTotal'); describe('calculateTotal', () => { it('should apply 10% discount when total exceeds 100', () => { const items = [{ price: 60 }, { price: 60 }]; // total = 120 expect(calculateTotal(items)).toBe(108); // 120 * 0.90 }); }); ``` Running this now produces: `Cannot find module './calculateTotal'` — correct RED state. --- ### 2. GREEN Phase — Make the Test Pass Write the **minimum code** needed to pass the test. Don't add anything extra. ```js // calculateTotal.js function calculateTotal(items) { const total = items.reduce((sum, item) => sum + item.price, 0); return total > 100 ? total * 0.9 : total; } module.exports = { calculateTotal }; ``` Run the test — it passes. GREEN achieved. Stop here; resist adding more logic. --- ### 3. REFACTOR Phase — Improve the Code With a passi...

Details

Author
rohitg00
Repository
rohitg00/skillkit
Created
4 months ago
Last Updated
today
Language
TypeScript
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category