테스트 표준
AI가 생성하는 테스트 코드를 제약하는 규범 집합입니다. 세 가지 내용으로 구성됩니다:
- unit-test-standards.md: 단위 테스트 — AAA 구조/Mock 규칙/Assertion 스타일/테스트 격리
- contract-test-standards.md: 계약 테스트 — 승인 시나리오 변환/삼태 커버리지/먼저 빨강 그다음 초록
- test-data-standards.md: 테스트 데이터 — 데이터 팩토리/Testcontainers/격리
로드 매트릭스
| 작업 유형 | 필독 |
|---|---|
| 단위 테스트 작성 | standards/unit-test-standards.md |
| 인터페이스 계약 테스트 작성 (ai-dev-workflow 4.2 연동) | standards/contract-test-standards.md + standards/unit-test-standards.md |
| 테스트 데이터 준비 / 데이터베이스 통합 테스트 | standards/test-data-standards.md |
| 테스트 코드 검토 | 전체 (해당 유형에 따라) |
핵심 규칙 요약
- 테스트는 승인 기준입니다: Assertion 변경/테스트 삭제/@Disabled 금지 (코딩이 테스트에 맞춰져서는 안 됩니다)
- 하나의 테스트는 하나의 동작, AAA 구조; Assertion은 AssertJ 체이닝 스타일 사용
- 테스트 메서드명은 영어 카멜 케이스(
createOrderShouldReturn400WhenUserNotExist), 한글/로마자 메서드명 금지; 사용 사례는 한글로 Javadoc 작성 - 모든 의존성은 Mock, 구현 세부 사항 테스트 금지; Thread.sleep 사용 금지
- 계약 테스트는 삼태(합법/불법/경계)를 커버하며, 먼저 빨강 그다음 초록
- 테스트 데이터는 팩토리화, 복잡한 SQL은 Testcontainers 실제 데이터베이스 사용
- 테스트 격리: 실행 순서에 의존하지 않음, 가변 상태 공유 금지
다른 Skill과의 관계
- ai-dev-workflow: 4.2
/contract-tests계약 테스트流程은 본 skill의 contract-test-standards를 참조합니다 (프로세스는 프로세스 skill에, 코드 규범은 본 skill에 있음) - java-code-standards: Java 코드 규범은 본 skill을 참조합니다 (테스트 작성 시 로드)
- database-standards / comment-standards: 직접 참조 없음
사용 요구사항
테스트 코드를 생성하기 전에