Spring Boot Testing Standards
Priority: P0
Follow TDD Workflow
- Red: Write a failing test (e.g.,
returns 404). - Green: Implement minimal code to pass.
- Refactor: Clean up while keeping tests green.
- Coverage: Verify with JaCoCo.
Write Slice and Integration Tests
- 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.
See implementation examples for WebMvcTest slice tests and Testcontainers integration tests.
Anti-Patterns
- No Dirty Contexts: Avoid @MockBean in base classes; it reloads context per test.
- No network I/O in tests: Mock external calls with WireMock.
- No System.out in tests: Use AssertJ assertions instead.