mcpField
T
tdd-with-pest

tdd-with-pest

github.com/dev-toolingsテスト・品質22770 回インストール3 週間前に更新
リポジトリ

tdd-with-pest について

Pest v4とPHP 8.3以降を使うSymfonyプロジェクト向けのテストスキルです。RED-GREEN-REFACTOR、Symfonyのテスト設定、PHPUnit構文からの移行を案内します。

主な機能

  1. 01RED-GREEN-REFACTORの手順
  2. 02SymfonyカーネルとHTTPのテスト
  3. 03PHPUnitからPestへの移行案内
  4. 04並列実行とカバレッジの基準

活用シーン

  1. 01機能をテストファーストで開発
  2. 02修正前に不具合を再現
  3. 03SymfonyのHTTP動作をテスト
  4. 04PHPUnitテストをPestへ移行

インストール

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

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill tdd-with-pest

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

同梱ファイルreference.md

詳細

Tdd With Pest (Symfony)

使用する場面

  • Pest v4(PHP 8.3 以降)を実行するプロジェクトで、RED-GREEN-REFACTOR に沿って機能開発を進めるとき。
  • Symfony カーネルまたは HTTP クライアントを必要とする it() および expect() テストを記述するとき。
  • pest-plugin-drift を使って、既存の PHPUnit クラステストを Pest の構文に変換するとき。
  • 修正前に、Pest のテストスイートへバグを再現するテストを追加するとき。

デフォルトのワークフロー

  1. PHP 8.3 以降と Pest v4 を確認し、./vendor/bin/pest --init で tests/Pest.php を生成します。
  2. tests/Pest.php でブリッジクラスをバインドします:uses(KernelTestCase::class, Factories::class, ResetDatabase::class)->in('Integration') および uses(WebTestCase::class, ...)->in('Functional')。
  3. RED:Foundry v2 のファクトリーを使って it() テストを記述し、./vendor/bin/pest --filter を実行して、正しい理由で失敗することを確認します。
  4. GREEN:最小限のコードを記述し、続けて REFACTOR を行ってから ./vendor/bin/pest を再実行します。
  5. --parallel および --coverage --min=80 でテストスイートをゲートします。

ガードレール

  • 公式の Symfony Pest プラグインはありません:pestphp/pest-plugin-symfony を決して参照せず、uses() を通じて KernelTestCase または WebTestCase をバインドします。
  • Foundry v2 のファクトリーは実オブジェクトを返します:->object() は呼び出しません。
  • Pest のテストファイルは無名であるため、#[ResetDatabase] 属性ではなく Factories および ResetDatabase トレイトを使用します。
  • 関連するチェックは expect()->and() で連結し、各テストで扱う概念は 1 つにします。

段階的な開示

  • 実行方針とリスク管理にはこのファイルを使用します。
  • 実装の詳細を掘り下げる必要がある場合は、参照資料を開きます。

出力要件

  • 失敗した ./vendor/bin/pest の出力(RED)、続いて成功した実行結果。
  • 追加または変更した tests/Pest.php のバインディング。
  • 変更したテストファイルと実行したコマンド。

参照資料

  • reference.md

コメント