mcpField
3
321-frameworks-spring-boot-testing-unit-tests

321-frameworks-spring-boot-testing-unit-tests

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

321-frameworks-spring-boot-testing-unit-tests について

Spring BootプロジェクトでMockitoを用いたユニットテストの実践を適用するスキルです。適切な場合はSpringコンテキストを使わず、コントローラーやJSONのスライステスト、パラメーター化テスト、決定的なテスト設定を扱います。

主な機能

  1. 01Mockitoによるサービスのユニットテスト
  2. 02@WebMvcTestによるコントローラーテスト
  3. 03@JsonTestでのJSONアサーション
  4. 04パラメーター化テストのパターン
  5. 05決定的なクロック設定
  6. 06現行のMockito Beanアノテーション

活用シーン

  1. 01コンテキストを読み込まずSpringサービスをテスト
  2. 02コントローラーのリクエストと応答をテスト
  3. 03JSONシリアライズ値の検証
  4. 04重複ケースをパラメーター化テストに置換

インストール

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

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

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

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

詳細

Mockito を使った Spring Boot の単体テスト

Mockito を使った Spring Boot の単体テストのガイドラインを適用します。

このスキルで扱う内容

  • 純粋な単体テスト:@Service/@Component 向けの @ExtendWith(MockitoExtension.class)、@Mock、@InjectMocks(Spring コンテキストなし)
  • スライステスト:コントローラー向けの @WebMvcTest、@MockitoBean(Spring Boot 4.0.x では @MockBean は削除されています)
  • JSON シリアライズ向けの @JsonTest と、正しい JSON 値のアサーション(extractingJsonPathStringValue など)
  • パラメーター化テスト:コピー&ペーストしたメソッドの代わりに、@CsvSource または @MethodSource を使った @ParameterizedTest
  • テストにおけるドメインオブジェクト向けの Java レコード
  • 決定論的なテスト環境のセットアップに使う @TestConfiguration、@ActiveProfiles、@Primary の固定クロック Bean
  • 最新のモック API:@MockitoBean/@MockitoSpyBean。@MockBean/@SpyBean は Boot 4.0.x で非推奨/削除されています

対象範囲: 参照ルールと適切/不適切なコード例に基づいて推奨事項を適用します。結合テストには @322-frameworks-spring-boot-testing-integration-tests を使用してください。

制約

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

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

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

  • Spring Boot の単体テストに関する Java コードをレビューする
  • Java コードに Spring Boot の単体テストのベストプラクティスを適用する
  • Spring Boot サービス向けに Mockito を優先した単体テストを作成する
  • Spring の単体テストで不要な @SpringBootTest を避ける
  • スライステストを使わない Spring Boot の単体テスト設計をレビューする

ワークフロー

  1. 参照資料を読み、プロジェクトの状況を評価する

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

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

依頼された成果、制約、適用する変更のうち安全な最小限のセットを特定します。

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

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

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

適切なビルド/テストを実行し、変更内容、検証内容、今後必要な対応をまとめます。

参照資料

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

コメント