321-frameworks-spring-boot-testing-unit-tests について
Spring BootプロジェクトでMockitoを用いたユニットテストの実践を適用するスキルです。適切な場合はSpringコンテキストを使わず、コントローラーやJSONのスライステスト、パラメーター化テスト、決定的なテスト設定を扱います。
主な機能
- 01Mockitoによるサービスのユニットテスト
- 02@WebMvcTestによるコントローラーテスト
- 03@JsonTestでのJSONアサーション
- 04パラメーター化テストのパターン
- 05決定的なクロック設定
- 06現行のMockito Beanアノテーション
活用シーン
- 01コンテキストを読み込まずSpringサービスをテスト
- 02コントローラーのリクエストと応答をテスト
- 03JSONシリアライズ値の検証
- 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 の単体テスト設計をレビューする
ワークフロー
- 参照資料を読み、プロジェクトの状況を評価する
変更を提案する前に、references/321-frameworks-spring-boot-testing-unit-tests.md を読み、現在のプロジェクト設定を確認します。
- 範囲を把握し、改善対象を決める
依頼された成果、制約、適用する変更のうち安全な最小限のセットを特定します。
- フレームワークに沿った変更を適用する
参照資料のパターンとプロジェクトの規約に従って、設定/コードを実装またはリファクタリングします。
- 検証を実行し、結果を報告する
適切なビルド/テストを実行し、変更内容、検証内容、今後必要な対応をまとめます。
参照資料
詳しいガイダンス、例、制約については、references/321-frameworks-spring-boot-testing-unit-tests.md を参照してください。