← ClaudeAtlas

tddlisted

テスト駆動開発(TDD)ワークフローを実行するスキル。 使用タイミング: (1) 新機能の実装開始時 (2) バグ修正時 (3) リファクタリング前 (4) 「テストから書いて」と言われた時 (5) 品質重視の実装が必要な時。 トリガー例: 「TDDで実装して」「テスト駆動で」「テストから書いて」 「RED-GREEN-REFACTORで」「UserServiceのテストを書いて」
kimny1143/claude-code-template · ★ 4 · Testing & QA · score 55
Install: claude install-skill kimny1143/claude-code-template
# /tdd - Test-Driven Development テスト駆動開発ワークフローを実行する。 ## 使い方 ``` /tdd # 対話的にTDDを開始 /tdd UserService # UserServiceのテストから開始 /tdd handlePayment edge # handlePaymentのエッジケーステスト ``` ## TDDサイクル ``` ┌─────────────────────────────────────────────────┐ │ 1. RED → テストを書く(失敗することを確認) │ │ 2. GREEN → 最小限のコードで通す │ │ 3. REFACTOR → リファクタ(テストは通ったまま)│ └─────────────────────────────────────────────────┘ ``` ## ワークフロ�� ### Step 1: RED(テストを書く) 1. テスト対象を特定 - 新機能: 期待する入出力を定義 - バグ修正: バグを再現するテストを書く 2. テストファイルを作成/更新 ```typescript // tests/unit/services/user.service.test.ts describe('UserService', () => { describe('createUser', () => { it('should create user with valid data', async () => { const result = await userService.createUser({ email: 'test@example.com', name: 'Test User', }); expect(result.id).toBeDefined(); expect(result.email).toBe('test@example.com'); }); it('should throw error for duplicate email', async () => { // エッジケース await expect( userService.createUser({ email: 'existing@example.com', name: 'Test' }) ).rejects.toThrow('Email already exists'); }); }); }); ``` 3. テスト実行 → **失敗を確認** ```bash npm run test -- --watch tests/unit/services/user.service.test.ts ``` ### Step 2: GREEN(実装する) 1. **最小限の実装**で通す - 完璧を目指さない - ハードコードでもOK(後でリファクタ) - テストが通ることだけに集中 2. テスト実行 → **成功