mcpField
T
testing-patterns

testing-patterns

github.com/vudovnテスト・品質8.2k201 回インストール9 週間前に更新
リポジトリ

testing-patterns について

testing-patternsは、テストの選択、整理、データ管理を扱うソフトウェア開発者向けの実践ガイドです。独立性、速度、再現性を重視し、振る舞いを検証するテストを勧めます。

主な機能

  1. 01テストピラミッドと種類の選択
  2. 02Arrange・Act・Assertの手順
  3. 03ユニット・統合テストの原則
  4. 04モックの種類と用途
  5. 05テストの整理と命名
  6. 06テストデータの方針

活用シーン

  1. 01新機能のテスト階層を計画
  2. 02独立した再現可能なユニットテストの作成
  3. 03統合テストのリソース設定と後処理
  4. 04テストデータとケース名の整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vudovn/ag-kit --skill testing-patterns

インストール後、Claude Code で/testing-patternsを入力して読み込まれたか確認します。

同梱ファイルscripts/test_runner.py

詳細

テストパターン

信頼性の高いテストスイートの原則です。


1. テストのピラミッド

        /\          E2E (Few)
       /  \         Critical flows
      /----\
     /      \       Integration (Some)
    /--------\      API, DB queries
   /          \
  /------------\    Unit (Many)
                    Functions, classes

2. AAA パターン

ステップ目的
Arrangeテストデータを準備する
Actテスト対象のコードを実行する
Assert結果を検証する

3. テストタイプの選択

それぞれの使いどころ
タイプ最適な対象速度
Unit純粋関数、ロジック高速(<100ms)
IntegrationAPI、DB、サービス中程度
E2E重要なユーザーフロー低速

4. 単体テストの原則

優れた単体テスト
原則意味
高速1 件あたり < 100ms
分離されている外部依存がない
再現可能常に同じ結果になる
自己検証可能手動での検証が不要
適時コードと同時に書かれている
単体テストの対象
テストするものテストしないもの
ビジネスロジックフレームワークのコード
エッジケースサードパーティーライブラリ
エラー処理単純なゲッター

5. 結合テストの原則

テストする対象
領域焦点
API エンドポイントリクエスト/レスポンス
データベースクエリ、トランザクション
外部サービスコントラクト
セットアップ/ティアダウン
フェーズアクション
全テストの前リソースに接続する
各テストの前状態をリセットする
各テストの後クリーンアップする
全テストの後接続を切断する

6. モックの原則

モックを使う場面
モックするものモックしないもの
外部 APIテスト対象のコード
データベース(単体テスト)単純な依存関係
時刻/乱数純粋関数
ネットワークメモリ内ストア
モックの種類
種類用途
スタブ固定値を返す
スパイ呼び出しを追跡する
モック期待値を設定する
フェイク簡略化した実装

7. テストの構成

命名
パターン例
期待する振る舞い"エラーを返すこと(〜の場合)"
条件"ユーザーが見つからない場合..."
Given-when-then"X が与えられたとき、Y を実行すると、Z になる"
グループ化
レベル用途
describe関連するテストをグループ化する
it/test個別のケース
beforeEach共通のセットアップ

8. テストデータ

戦略
アプローチ用途
ファクトリーテストデータを生成する
フィクスチャ事前定義されたデータセット
ビルダー流れるようにオブジェクトを作成する
原則
  • 現実的なデータを使用する
  • 重要でない値はランダム化する(faker)
  • 共通のフィクスチャを共有する
  • データを最小限にする

9. ベストプラクティス

プラクティス理由
1 テストにつき 1 つのアサーション失敗理由が明確になる
テストを独立させる実行順序に依存しない
テストを高速にする頻繁に実行できる
説明的な名前を付ける説明を兼ねたドキュメントになる
クリーンアップする副作用を避ける

10. アンチパターン

❌ しないこと✅ すること
実装をテストする振る舞いをテストする
テストコードを重複させるファクトリーを使う
複雑なテストセットアップ簡素化するか、分割する
不安定なテストを無視する根本原因を修正する
クリーンアップを省略する状態をリセットする

覚えておきましょう: テストはドキュメントです。テストを読んでもコードの動作が理解できない場合は、書き直してください。

コメント