mcpField
L
laravel:tdd-with-pest

laravel:tdd-with-pest

github.com/jpcaparasテスト・品質157177 回インストール17 週間前に更新
リポジトリ

laravel:tdd-with-pest について

Laravel で Pest または PHPUnit を使ったテスト駆動開発を行うためのスキルです。失敗するテスト、最小限の実装、リファクタリングの手順とテストの指針を説明します。

主な機能

  1. 01失敗から始める TDD サイクル
  2. 02Pest または PHPUnit のテストランナー
  3. 03ファクトリーと Seeder によるテストデータ作成
  4. 04機能テストとユニットテストの指針
  5. 05決定的なテストの実践

活用シーン

  1. 01失敗するテストから本番コードの変更を始める
  2. 02HTTP の動作や純粋なサービスをテスト
  3. 03現実的で再現可能なテストを維持

インストール

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

$npx skills add https://github.com/jpcaparas/superpowers-laravel --skill laravel:tdd-with-pest

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

詳細

Laravel TDD(Pest/PHPUnit)

まずテストを書きます。失敗することを確認します。合格する最小限のコードを書きます。テストは高速で現実的なものに保ちます。

テストランナー

# Sail
sail artisan test --parallel

# Non-Sail
php artisan test --parallel

新しい Laravel アプリでは、Pest(デフォルト)をおすすめします。プロジェクトで PHPUnit を使っている場合は、PHPUnit でも問題ありません。

RED – 失敗するテストを書く

  • モデルファクトリーを使い、重いモックは避けます
  • HTTP/コントローラーにはフィーチャーテストを、純粋なサービスにはユニットテストを使います
  • 振る舞いがわかる名前をテストに付けます

例(フィーチャーテスト):

it('rejects empty email on signup', function () {
    $response = $this->post('/register', [
        'name' => 'Alice',
        'email' => '',
        'password' => 'secret',
        'password_confirmation' => 'secret',
    ]);

    $response->assertSessionHasErrors('email');
});

実行して、正しい理由で失敗することを確認します。

GREEN – 最小限の実装

失敗するテストに合格する、最もシンプルなコードを書きます。余計なものは追加しません。リファクタリングもしません。

REFACTOR – 整理する

重複をなくし、名前をわかりやすくし、小さなサービスを切り出します。テストがすべて成功する状態を保ちます。

ガイドライン

  • 本番コードの変更はすべて、失敗するテストから始めます
  • 失敗を確認し、失敗する段階を決して飛ばしません
  • 現実的なデータにはファクトリー/シーダーを使います
  • 必要に応じて、テストでは DB トランザクションまたはリフレッシュを使います
  • テストを決定論的に保ち、非同期処理ではスリープを避けます

行き詰まったとき

  • テストを書くのが難しい場合は、設計の結合度が高すぎます。サービスまたはポートを切り出します
  • 依存性注入を優先し、静的/グローバルな状態は避けます

コメント