mcpField
3
322-frameworks-spring-boot-testing-integration-tests

322-frameworks-spring-boot-testing-integration-tests

github.com/jabrenaテスト・品質456363 回インストール1 日前に更新
リポジトリ

322-frameworks-spring-boot-testing-integration-tests について

Java プロジェクト向けに Spring Boot 4.0.x のインテグレーションテスト手法を適用するスキルです。テスト範囲、コンテナサービス、HTTP と永続化のテストを扱い、変更前のコンパイルと変更後の全体検証を求めます。

主な機能

  1. 01Testcontainers と @ServiceConnection の利用
  2. 02代替手段としての @DynamicPropertySource
  3. 03MockMvcTester と TestRestTemplate による HTTP テスト
  4. 04@DataJdbcTest または @DataJpaTest による永続化スライス
  5. 05テストデータの分離とリソースライフサイクルの指針

活用シーン

  1. 01Testcontainers を使った @SpringBootTest の作成
  2. 02HTTP エンドポイントや HTTP スタック全体のテスト
  3. 03Spring のスライスを使った永続化テスト

インストール

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

$npx skills add https://github.com/jabrena/plinth --skill 322-frameworks-spring-boot-testing-integration-tests

インストール後、Claude Code で/322-frameworks-spring-boot-testing-integration-testsを入力して読み込まれたか確認します。

同梱ファイルreferences/322-frameworks-spring-boot-testing-integration-tests.md

詳細

Spring Boot 統合テスト

Spring Boot 4.0.x 向けの統合テストのガイドラインを適用します。

このスキルで扱う内容

  • 統合テストの範囲と目的(ユニットテストの重複ではなく、配線とコントラクトを検証する)
  • 設定不要の配線を実現する Testcontainers と @ServiceConnection(推奨)
  • 組み込みのサービス接続に対応していないコンテナーのフォールバックとしての @DynamicPropertySource
  • パフォーマンス向上のため、テストメソッド間で共有される静的な @Container インスタンス
  • 流暢な AssertJ ベースの HTTP アサーションを行う MockMvcTester(Spring Boot 4.0.x)
  • HTTP スタック全体をテストする TestRestTemplate
  • @DataJdbcTest / @DataJpaTest の永続化スライス(永続化レイヤーのみを読み込み、起動を高速化)
  • データの分離:各テストがそれぞれのシナリオを所有し、変更可能な状態の共有や実行順序への依存を避ける
  • モック登録のための @MockitoBean(Spring Boot 4.0.x — @MockBean は削除済み)
  • リソースのライフサイクル:終了処理には Testcontainers の JUnit 統合を使用し、*IT と統合テストを分離する

範囲: リファレンスのルールと良い/悪いコード例に基づいて推奨事項を適用します。

制約

統合テストに変更を加える前に、プロジェクトがコンパイルできることを確認してください。コンパイルに失敗した場合は、直ちに作業を中止してください。改善を適用した後は、完全な検証を実行してください。

  • 必須:変更を適用する前に ./mvnw compile または mvn compile を実行する
  • 安全性:コンパイルに失敗した場合は、直ちに作業を中止する
  • 検証:改善を適用した後に ./mvnw clean verify または mvn clean verify を実行する
  • 適用前:詳細なルールと良い/悪いパターンについて、リファレンスを読む
  • エッジケース:依頼の範囲が曖昧な場合は、変更を適用する前に作業を中止して確認する
  • エッジケース:必要な入力、ファイル、ツールが不足している場合は、不足しているものを報告し、セットアップの案内を進めてよいか確認する

このスキルを使用する場面

  • Spring Boot の統合テストに関する Java コードをレビューする
  • Java コードで Spring Boot の統合テストのベストプラクティスを適用する
  • Testcontainers を使用した @SpringBootTest 統合テストを作成する
  • Spring 統合テスト向けの動的プロパティを設定する
  • Spring Boot 統合テストのプロファイルをレビューする

ワークフロー

  1. リファレンスを読み、プロジェクトのコンテキストを確認する

references/322-frameworks-spring-boot-testing-integration-tests.md を読み、変更を提案する前に現在のプロジェクト設定を確認します。

  1. 範囲を把握し、改善対象を決める

依頼された成果、制約、適用する変更のうち安全性を確保できる最小限のものを特定します。

  1. フレームワークに沿った変更を適用する

リファレンスのパターンとプロジェクトの規約に従って、設定やコードを実装またはリファクタリングします。

  1. 検証を実行し、結果を報告する

適切なビルド/テストを実行し、変更内容、検証した内容、追加の対応事項をまとめます。

リファレンス

詳細なガイダンス、例、制約については、references/322-frameworks-spring-boot-testing-integration-tests.md を参照してください。

コメント