mcpField
A
api-platform-tests

api-platform-tests

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

api-platform-tests について

Symfony 向けに API Platform の機能テストを作成するスキルです。データベースの準備、認証、レスポンス検証と、代表的な失敗ケースを扱います。

主な機能

  1. 01エンドポイントの CRUD テスト
  2. 02検証とアクセス制御のアサート
  3. 03フィルターとページネーションの確認
  4. 04データベースリセットとファクトリー設定
  5. 05JSON Schema のアサート

活用シーン

  1. 01コレクションと単一項目のエンドポイントテスト
  2. 02401、403、404、422 応答の検証
  3. 03フィルターとページネーションの確認
  4. 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 テスト用にクリーンなデータベースとテストデータを準備する場合。

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

  1. ApiTestCase を継承し、Foundry ファクトリー(createOne、createMany)でデータをシードします。
  2. #[ResetDatabase] と Factories トレイトで状態をリセットします。DAMA は各テストをロールバックします。
  3. static::createClient()->request() を呼び出し、ステータスコード、コンテンツタイプ、assertJsonContains() を検証します。
  4. auth_bearer で認証し、匿名ユーザー、所有者、別のユーザーのケースを網羅します。
  5. フィルターとページネーションについて、member と totalItems を検証します(hydra: プレフィックスが付くのは hydra_prefix: true の場合のみです)。
  6. 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

コメント