Allra 백엔드 테스트 작성 표준. Use when writing test code, choosing test helpers, generating test data with Fixture Monkey, or verifying test coverage.
View on GitHubbackend-plugin/skills/test-writing/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/Allra-Fintech/allra-ai-skills/blob/main/backend-plugin/skills/test-writing/SKILL.md -a claude-code --skill allra-test-writingInstallation paths:
.claude/skills/allra-test-writing/# Allra Test Writing Standards
Allra 백엔드 팀의 테스트 작성 표준을 정의합니다. 테스트 헬퍼 선택, Fixture Monkey 데이터 생성, Given-When-Then 패턴, AssertJ 검증을 포함합니다.
## 프로젝트 기본 정보
이 가이드는 다음 환경을 기준으로 작성되었습니다:
- **Java**: 17 이상
- **Spring Boot**: 3.2 이상
- **Testing Framework**: JUnit 5
- **Assertion Library**: AssertJ
- **Mocking**: Mockito
- **Test Data**: Fixture Monkey (선택 사항)
- **Container**: Testcontainers (선택 사항)
**참고**: 프로젝트별로 사용하는 라이브러리나 버전이 다를 수 있습니다. 프로젝트에 맞게 조정하여 사용하세요.
## 테스트 헬퍼 선택 가이드
**주의**: 아래 테스트 헬퍼는 Allra 표준 템플릿에서 제공됩니다. 프로젝트에 이러한 헬퍼가 없는 경우, Spring Boot 기본 테스트 어노테이션(`@SpringBootTest`, `@DataJpaTest`, `@WebMvcTest` 등)을 직접 사용하되, 이 가이드의 테스트 패턴과 원칙은 동일하게 적용합니다.
| 헬퍼 | 태그 | 용도 | 무게 | 언제? |
|------|------|------|------|-------|
| **IntegrationTest** | Integration | 여러 서비스 통합 | 🔴 무거움 | 전체 워크플로우 |
| **RdbTest** | RDB | Repository, QueryDSL | 🟡 중간 | 쿼리 검증 |
| **ControllerTest** | Controller | API 엔드포인트 | 🟢 가벼움 | REST API 검증 |
| **RedisTest** | Redis | Redis 캐싱 | 🟢 가벼움 | 캐시 검증 |
| **MockingUnitTest** | MockingUnit | Service 단위 | 🟢 매우 가벼움 | 비즈니스 로직 |
| **PojoUnitTest** | PojoUnit | 도메인 로직 | 🟢 매우 가벼움 | 순수 자바 |
### 선택 플로우
```
API 엔드포인트? → ControllerTest
여러 서비스 통합? → IntegrationTest
Repository/QueryDSL? → RdbTest
Redis 캐싱? → RedisTest
Service 로직 (Mock)? → MockingUnitTest
도메인 로직 (POJO)? → PojoUnitTest
```
---
## 🎯 Mock vs Integration 선택 기준 (중요!)
**원칙**: 기본은 MockingUnitTest, 꼭 필요할 때만 IntegrationTest
**목표**: IntegrationTest 비율 5% 이하 유지
### 의사결정 플로우차트
```
┌─────────────────────────────────┐
│ 무엇을 테스트하려고 하는가? │
└────────────┬────────────────────┘
│
┌────────▼────────┐
│ 도메인 로직만? │ ──Yes──> PojoUnitTest
└────────┬────────┘
│ No
┌────────▼─────────────────────┐
│ Repository/QueryDSL 쿼리? │ ──Yes──> RdbTest
└────────┬─────────────────────┘
│ No
┌────────▼─────────────────────┐
│ API 엔드포인트 응답/검증? │ ──Yes──> ControllerTest
└────────┬─────────────────────┘
│ No
┌────────▼───────────────Issues Found: