Spring Boot Testing Standards
Priority: P0
Implementation Guidelines
Test Strategy
- Unit First: Prioritize pure unit tests (Mockito) over Context tests.
- Slice Testing: Use
@WebMvcTest(Controllers) and@DataJpaTest(Repos) to reduce build time. - Integration: Use
@SpringBootTestonly for critical end-to-end flows.
Best Practices
- Real Infrastructure: Use Testcontainers for DB/Queues. Avoid H2/Embedded.
- Assertions: Use AssertJ (
assertThat) over JUnit assertions. - Isolation: Use
@MockBeanfor downstream dependencies in Slice Tests.
Anti-Patterns
- Context Reloading:
**No Dirty Contexts**: Avoid @MockBean in base classes. - External Calls:
**No network I/O**: Use WireMock. - System Out:
**No System.out**: Use assertions.
