Agent skill
spring-boot-testing
Spring Boot 4 testing strategies and patterns. Use when writing unit tests, slice tests (@WebMvcTest, @DataJpaTest), integration tests, Testcontainers with @ServiceConnection, security testing (@WithMockUser, JWT), or Modulith event testing with Scenario API. Covers the critical @MockitoBean migration from @MockBean.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/testing/spring-boot-testing-joaquimscosta-arkhe-claude-plugins
SKILL.md
Spring Boot 4 Testing
Comprehensive testing patterns including slice tests, Testcontainers, security testing, and Modulith Scenario API.
Critical Breaking Change
| Old (Boot 3.x) | New (Boot 4.x) | Notes |
|---|---|---|
@MockBean |
@MockitoBean |
Required migration |
@SpyBean |
@MockitoSpyBean |
Required migration |
Implicit @AutoConfigureMockMvc |
Explicit annotation required | Add to @SpringBootTest |
Test Annotation Selection
| Test Type | Annotation | Use When |
|---|---|---|
| Controller | @WebMvcTest |
Testing request/response, validation |
| Repository | @DataJpaTest |
Testing queries, entity mapping |
| JSON | @JsonTest |
Testing serialization/deserialization |
| REST Client | @RestClientTest |
Testing external API clients |
| Full Integration | @SpringBootTest |
End-to-end, with real dependencies |
| Module | @ApplicationModuleTest |
Testing bounded context in isolation |
Core Workflow
- Choose test slice → Minimal context for fast tests
- Mock dependencies →
@MockitoBeanfor external services - Use Testcontainers →
@ServiceConnectionfor databases - Assert thoroughly → Use AssertJ, MockMvcTester, WebTestClient
- Test security →
@WithMockUser, JWT mocking
Quick Patterns
See EXAMPLES.md for complete working examples including:
- @WebMvcTest with
MockMvcTesterand@MockitoBean(Java + Kotlin) - @DataJpaTest with
TestEntityManagerfor lazy loading verification - Testcontainers with
@ServiceConnectionfor PostgreSQL/Redis - Security Testing with
@WithMockUserfor role-based access - Modulith Event Testing with
ScenarioAPI
Detailed References
- Examples: See EXAMPLES.md for complete working code examples
- Troubleshooting: See TROUBLESHOOTING.md for common issues and Boot 4 migration
- Slice Tests: See references/slice-tests.md for @WebMvcTest, @DataJpaTest, @JsonTest patterns
- Testcontainers: See references/testcontainers.md for @ServiceConnection, container reuse
- Security Testing: See references/security-testing.md for @WithMockUser, JWT mocking
- Modulith Testing: See references/modulith-testing.md for Scenario API, event verification
Anti-Pattern Checklist
| Anti-Pattern | Fix |
|---|---|
Using @MockBean in Boot 4 |
Replace with @MockitoBean |
@SpringBootTest for unit tests |
Use appropriate slice annotation |
Missing entityManager.clear() |
Add to verify lazy loading |
| High-cardinality test data | Use minimal, focused fixtures |
| Shared mutable test state | Use @DirtiesContext or fresh containers |
| No security tests | Add @WithMockUser tests for endpoints |
Critical Reminders
- @MockitoBean is mandatory —
@MockBeanremoved in Boot 4 - Slice tests are fast — Use them for focused testing
- Clear EntityManager — Required to test lazy loading behavior
- @ServiceConnection simplifies Testcontainers — No more
@DynamicPropertySource - Test security explicitly — Don't rely on disabled security
Didn't find tool you were looking for?