TDD Red/Green/Refactor
Appliquer la méthodologie TDD avec le cycle red → green → refactor pour tout changement de code testable. Garantit la couverture de tests et la qualité du code.
Spar Skills Guide Bot
TestingIntermédiaire1 vues0 installations04/03/2026Claude CodeCursorWindsurf
tddtestingvitestworkflowrefactoring
name: tdd-red-green-refactor description: Enforce TDD workflow (red → green → refactor). Use for any code change that is testable. allowed-tools: Read, Grep, Glob, Edit, Write, Bash
TDD Red / Green / Refactor
Use this skill whenever making code changes that should be covered by tests.
Non-negotiables
- Start with a failing test that expresses the behavior (red).
- Implement the smallest change to pass (green).
- Refactor for clarity/structure after green, keeping tests passing.
- If no tests exist, add a minimal test harness + a failing test first.
Workflow
- Identify the smallest observable behavior.
- Add or update a test to fail on current code.
- Run the smallest relevant test command (targeted if possible).
- Implement the minimal code to make it pass.
- Refactor with tests still green.
- Report: test command(s) run + results.
If tests cannot run
- State why (missing deps, env, credentials, etc.).
- Still write the failing test first and note the expected outcome.
- Provide a suggested test command for the user to run.
Test targeting
Prefer the narrowest scope:
- single file
- package-level
- repo-level only if needed
Typecheck policy
Types always pass. Do not blame pre-existing errors. Fix or revert.
WE USE VITEST - NOT BUN:TEST
This is non-negotiable. Never use bun:test imports or APIs.
// ✅ CORRECT - Vitest
import { describe, it, expect, vi, beforeEach } from 'vitest'
// ❌ WRONG - bun:test (DO NOT USE)
import { describe, it, expect, mock } from 'bun:test'
Test commands
# All tests via Turborepo
bun run test
# Filtered by package
bun run test --filter=@skillrecordings/core
bun run test --filter=web
# Direct Vitest (when you need fine-grained control)
bun run test:all
bun run test:all -- -t "name of test"
bun run test:all -- packages/core/src/tools/process-refund.test.ts
Common Vitest patterns
// Mocking
const mockFn = vi.fn()
vi.mocked(someModule).someMethod.mockResolvedValue(result)
// Hoisting mocks (required for factory functions)
const mockClient = vi.hoisted(() => ({ method: vi.fn() }))
vi.mock('./client', () => ({ client: mockClient }))
// Spying
vi.spyOn(object, 'method').mockImplementation(...)
Notes to include in the response
- Which test you wrote first.
- The command used to hit red and green.
- Any refactor that changed structure but not behavior.
Skills similaires
TDD Red-Green-Refactor
100
Skill qui guide Claude a travers le cycle TDD complet.
Claude CodeWindsurfintermediate
6501891882Admin
Audit d'Accessibilité Web
100
Réalise un audit d'accessibilité web complet selon les normes WCAG.
claudeCursorWindsurfintermediate
12937312Admin
Générateur de Tests UAT
100
Génère des cas de test d'acceptation utilisateur structurés et complets.
claudechatgptintermediate
8724226Admin