tdd-with-pest について
Pest v4とPHP 8.3以降を使うSymfonyプロジェクト向けのテストスキルです。RED-GREEN-REFACTOR、Symfonyのテスト設定、PHPUnit構文からの移行を案内します。
主な機能
- 01RED-GREEN-REFACTORの手順
- 02SymfonyカーネルとHTTPのテスト
- 03PHPUnitからPestへの移行案内
- 04並列実行とカバレッジの基準
活用シーン
- 01機能をテストファーストで開発
- 02修正前に不具合を再現
- 03SymfonyのHTTP動作をテスト
- 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 のテストスイートへバグを再現するテストを追加するとき。
デフォルトのワークフロー
- PHP 8.3 以降と Pest v4 を確認し、
./vendor/bin/pest --initでtests/Pest.phpを生成します。 tests/Pest.phpでブリッジクラスをバインドします:uses(KernelTestCase::class, Factories::class, ResetDatabase::class)->in('Integration')およびuses(WebTestCase::class, ...)->in('Functional')。- RED:Foundry v2 のファクトリーを使って
it()テストを記述し、./vendor/bin/pest --filterを実行して、正しい理由で失敗することを確認します。 - GREEN:最小限のコードを記述し、続けて REFACTOR を行ってから
./vendor/bin/pestを再実行します。 --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
コメント
Markdown 対応