tdd について
AIエージェントやLLM向けのテスト駆動開発ガイドです。レッド・グリーン・リファクタリングのサイクルに加え、テスト設計、分離、データ、信頼性の実践を扱います。優先度付きのルールでテストの作成、レビュー、リファクタリングを支援します。
主な機能
- 018カテゴリにわたる42のルール
- 02レッド・グリーン・リファクタリングのワークフロー
- 03振る舞いを重視したテスト設計
- 04テスト分離とデータの実践
- 05信頼性とテスト戦略の指針
活用シーン
- 01実装前のテスト作成
- 02振る舞いに沿ったテスト構成
- 03分離された決定論的なテストの作成
- 04既存テストのレビューや改修
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill tddインストール後、Claude Code で/tddを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdassert-custom-matchers.mdassert-error-messages.mdassert-no-assertions-antipattern.mdassert-snapshot-testing.mdassert-specific-assertions.mdcycle-maintain-test-list.mdcycle-minimal-code-to-pass.mdcycle-refactor-after-green.mdcycle-small-increments.mdcycle-verify-test-fails-first.mdcycle-write-test-first.mddata-avoid-mystery-guests.mddata-builder-pattern.mddata-minimal-setup.mddata-unique-identifiers.mddata-use-factories.mddesign-aaa-pattern.mddesign-avoid-logic-in-tests.mddesign-descriptive-test-names.mddesign-one-assertion-per-test.mddesign-test-behavior-not-implementation.mddesign-test-edge-cases.mdisolate-deterministic-tests.mdisolate-mock-external-dependencies.mdisolate-no-shared-state.md詳細
コミュニティのテスト駆動開発におけるベストプラクティス
AI エージェントと LLM 向けに設計された、テスト駆動開発の実践に関する包括的なガイドです。8 つのカテゴリにわたる 42 のルールを、テストの作成、リファクタリング、コード生成の指針となるよう、影響度順に掲載しています。
適用するタイミング
次の作業を行う際に、これらのガイドラインを参照してください。
- TDD のワークフローを使用して新しいテストを作成する
- レッド・グリーン・リファクタリングのサイクルを実践する
- テストの構造と整理方法を設計する
- テストデータとフィクスチャを作成する
- 既存のテストスイートをレビューまたはリファクタリングする
TDD ワークフロー
- RED:期待する動作を定義する、失敗するテストを書きます
- GREEN:テストに合格するために必要な最小限のコードを書きます
- REFACTOR:テストを通したままコードを整理します
- 新しい動作を追加するたびに繰り返します
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | 接頭辞 |
|---|---|---|---|
| 1 | レッド・グリーン・リファクタリングのサイクル | CRITICAL | cycle- |
| 2 | テスト設計の原則 | CRITICAL | design- |
| 3 | テストの分離と依存関係 | HIGH | isolate- |
| 4 | テストデータの管理 | HIGH | data- |
| 5 | アサーションと検証 | MEDIUM | assert- |
| 6 | テストの整理と構造 | MEDIUM | org- |
| 7 | テストのパフォーマンスと信頼性 | MEDIUM | perf- |
| 8 | テストピラミッドと戦略 | LOW | strat- |
クイックリファレンス
1. レッド・グリーン・リファクタリングのサイクル(CRITICAL)
cycle-write-test-first- 実装の前にテストを書くcycle-minimal-code-to-pass- テストに合格するために必要なコードだけを書くcycle-refactor-after-green- グリーンになった直後にリファクタリングするcycle-verify-test-fails-first- コードを書く前にテストが失敗することを確認するcycle-small-increments- 小さなステップで段階的に進めるcycle-maintain-test-list- テストリストを維持する
2. テスト設計の原則(CRITICAL)
design-test-behavior-not-implementation- 実装ではなく動作をテストするdesign-one-assertion-per-test- 1 つのテストにつき、論理的なアサーションを 1 つにするdesign-descriptive-test-names- 内容がわかるテスト名を付けるdesign-aaa-pattern- アレンジ・アクト・アサートのパターンに従うdesign-test-edge-cases- エッジケースと境界値をテストするdesign-avoid-logic-in-tests- テスト内のロジックを避ける
3. テストの分離と依存関係(HIGH)
isolate-mock-external-dependencies- 外部依存関係をモックするisolate-no-shared-state- テスト間で変更可能な状態を共有しないisolate-deterministic-tests- 決定的なテストを書くisolate-prefer-stubs-over-mocks- クエリにはモックよりスタブを優先するisolate-use-dependency-injection- テストしやすくするために依存性注入を使用する
4. テストデータの管理(HIGH)
data-use-factories- テストデータの作成にファクトリを使用するdata-minimal-setup- テストのセットアップを最小限にするdata-avoid-mystery-guests- 正体不明のデータを避けるdata-unique-identifiers- テストごとに一意の識別子を使用するdata-builder-pattern- 複雑なオブジェクトにはビルダーパターンを使用する
5. アサーションと検証(MEDIUM)
assert-specific-assertions- 具体的なアサーションを使用するassert-error-messages- エラーメッセージとエラーの種類を検証するassert-no-assertions-antipattern- すべてのテストにアサーションを含めるassert-custom-matchers- ドメイン固有のアサーションにはカスタムマッチャーを作成するassert-snapshot-testing- スナップショットテストは慎重に使用する
6. テストの整理と構造(MEDIUM)
org-group-by-behavior- メソッドではなく動作ごとにテストをまとめるorg-file-structure- 一貫したテストファイルの構成に従うorg-setup-teardown- セットアップとティアダウンのフックを適切に使用するorg-test-utilities- 再利用可能なテストユーティリティを抽出するorg-parameterized-tests- バリエーションにはパラメーター化テストを使用する
7. テストのパフォーマンスと信頼性(MEDIUM)
perf-fast-unit-tests- ユニットテストを 100ms 未満に保つperf-avoid-network-calls- ユニットテストでのネットワーク呼び出しをなくすperf-fix-flaky-tests- 不安定なテストはすぐに修正するperf-parallelize-tests- 独立したテストを並列化するperf-avoid-sleep- 根拠のないスリープ呼び出しを避ける
8. テストピラミッドと戦略(優先度:低)
strat-test-pyramid- テストピラミッドに従いますstrat-mutation-testing- ミューテーションテストを使用してテストの品質を検証しますstrat-coverage-targets- 意味のあるカバレッジ目標を設定しますstrat-integration-boundaries- サービス境界で統合テストを実施しますstrat-e2e-critical-paths- E2E テストを重要なユーザーパスに限定します
使用方法
詳しい説明とコード例については、各リファレンスファイルを参照してください。
- セクションの定義 - カテゴリー構成と影響レベル
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
- cycle-write-test-first - 実装の前にテストを作成します
- design-aaa-pattern - Arrange-Act-Assert パターンに従います
関連スキル
- Vitest フレームワークの詳細については、
vitestスキルを参照してください - MSW を使用した API のモックについては、
mswスキルを参照してください
完全版ドキュメント
すべてのルールを展開した完全なガイドについては、AGENTS.md を参照してください
コメント
Markdown 対応