backend-testing
Write and review backend tests with JUnit5, MockMvc, and Spring Boot Test. Use for writing controller tests, service tests, and integration tests.
SKILL.md.claude/skills/backend-testing/SKILL.md
GitHubBackend 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
src/test/java/
├── controller/
│ └── {Feature}ControllerTest.java
├── service/
│ └── {Feature}ServiceTest.java
└── integration/
└── {Feature}IntegrationTest.java
Test Naming Convention
@Test
void should_ReturnSuccess_When_ValidInput() { }
@Test
void should_ThrowException_When_InvalidInput() { }