api-platform-tests について
Symfony 向けに API Platform の機能テストを作成するスキルです。データベースの準備、認証、レスポンス検証と、代表的な失敗ケースを扱います。
主な機能
- 01エンドポイントの CRUD テスト
- 02検証とアクセス制御のアサート
- 03フィルターとページネーションの確認
- 04データベースリセットとファクトリー設定
- 05JSON Schema のアサート
活用シーン
- 01コレクションと単一項目のエンドポイントテスト
- 02401、403、404、422 応答の検証
- 03フィルターとページネーションの確認
- 04分離したテストデータの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill api-platform-testsインストール後、Claude Code で/api-platform-testsを入力して読み込まれたか確認します。
同梱ファイルreference.md
詳細
API Platform のテスト(Symfony)
使用する場面
- コレクション、アイテム、作成、更新、削除など、API Platform のエンドポイントの機能テストを書く場合。
- バリデーションエラー(422)とアクセス制御(401、403)を検証する場合。
- フィルター、ページネーション、レスポンスの JSON スキーマを確認する場合。
- API テスト用にクリーンなデータベースとテストデータを準備する場合。
デフォルトのワークフロー
ApiTestCaseを継承し、Foundry ファクトリー(createOne、createMany)でデータをシードします。#[ResetDatabase]とFactoriesトレイトで状態をリセットします。DAMA は各テストをロールバックします。static::createClient()->request()を呼び出し、ステータスコード、コンテンツタイプ、assertJsonContains()を検証します。auth_bearerで認証し、匿名ユーザー、所有者、別のユーザーのケースを網羅します。- フィルターとページネーションについて、
memberとtotalItemsを検証します(hydra:プレフィックスが付くのはhydra_prefix: trueの場合のみです)。 assertMatchesResourceItemJsonSchema()とassertMatchesResourceCollectionJsonSchema()で構造を検証します。
ガードレール
PATCHはapplication/merge-patch+jsonのコンテンツタイプで送信します。#[ResetDatabase]には PHPUnit 10 以降と Foundry 2.9 が必要です。PHPUnit 9 ではResetDatabaseトレイトを使用してください。- 失敗するケースも網羅します:404、422、401、403。制約付きプロパティでの型エラーは、5.0 では 422、4.4 以前では 400 です。
- アサーションでページサイズをハードコードせず、設定済みの 1 ページあたりのアイテム数を参照します。
段階的な開示
- 実行時の方針とリスク管理には、このファイルを使用します。
- 実装の詳細が必要な場合は、リファレンスを開きます。
出力の要件
- 追加したテストクラスと、それらが対象とするエンドポイント。
- 使用したファクトリーとリセット戦略。
- 失敗するケースを含むテスト実行の出力。
参考資料
reference.md
コメント
Markdown 対応