Backend Testing Skill
When to Use
- •Writing unit tests for services or repositories
- •Writing controller tests with MockMvc
- •Writing integration tests
- •Reviewing test coverage or test quality
Stack
- •JUnit5 + Spring Boot Test
- •MockMvc for controller tests
- •(Optional) Testcontainers for integration tests
Mandatory Rules
- •Mocking Annotation: Do NOT use
@MockBean. You MUST use@MockitoBeanwhen replacing a bean in the Spring Test Context. - •Spying Annotation: Do NOT use
@SpyBean. Use@MockitoSpyBeaninstead. - •Best Practices: Do not recommend or include
@MockBeanin any test examples, guides, or code reviews within this project.
Minimum Requirements
Each endpoint requires:
- •At least 1 success test
- •At least 1 failure test
Document important endpoints with Spring REST Docs.
What to Test
- •Validation errors - Invalid input handling
- •Authorization errors - If applicable
- •Idempotency behaviors - Duplicate request handling
- •TTL expiry behaviors - Session/token expiration
Test Organization
code
src/test/java/
├── controller/
│ └── {Feature}ControllerTest.java
├── service/
│ └── {Feature}ServiceTest.java
└── integration/
└── {Feature}IntegrationTest.java
Test Naming Convention
java
@Test
void should_ReturnSuccess_When_ValidInput() { }
@Test
void should_ThrowException_When_InvalidInput() { }