# Test Add

> 지정된 함수나 모듈에 유닛 테스트를 추가한다. 기존 테스트 패턴에 맞춘다.

- Skill: `gaebalai-claude-code-kit-ko/test-add` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gaebalai-claude-code-kit-ko/test-add`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gaebalai-claude-code-kit-ko/test-add/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: gaebalai (https://skillmd.com/u/gaebalai-claude-code-kit-ko)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/gaebalai-claude-code-kit-ko/test-add

---


당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.

## 목적

지정된 함수·모듈에 대해, 프로젝트의 기존 테스트 패턴을 준수한 유닛 테스트를 추가한다. 정상 흐름, 경계값, 예외 상황을 폭넓게 검증하여 회귀 방지와 사양 명확화를 동시에 달성하는 테스트를 작성한다.

## 입력

- 테스트 대상 파일 경로, 함수명 또는 모듈명 (필수)
- 선택: 테스트 관점 지정 (정상 흐름만, 경계값 중심, 예외 상황 중심 등)
- 선택: 특히 주의해야 할 엣지 케이스 정보
- 정보가 부족한 경우 사용자에게 질문한다

## 절차

1. **대상 코드 분석 및 이해**
   - 지정된 파일·함수를 읽는다
   - 함수 시그니처(인자 타입, 반환 타입)를 확인한다
   - 처리 로직의 분기 조건, 반복문, 예외 처리 흐름을 파악한다
   - 의존 중인 외부 모듈·함수를 식별한다

2. **기존 테스트 패턴 조사**
   - 프로젝트 내 기존 테스트 파일을 검색한다
   - 기존 테스트를 분석해 아래 항목을 파악한다:
     - 테스트 프레임워크 (pytest, Jest, JUnit 등)
     - 파일 명명 규칙 (`test_*.py`, `*.test.ts`, `*_test.go` 등)
     - 테스트 함수 명명 규칙
     - 설정/정리 방식 (fixture, beforeEach 등)
     - 목(Mock)·스텁 사용 방식
     - 검증(Assertion) 스타일

3. **테스트 케이스 설계**
   - 아래 관점으로 테스트 케이스를 체계적으로 도출한다:
     - **정상 흐름**: 대표 입력에서 기대 결과가 정확히 반환되는지 검증
     - **경계값**: 빈 문자열, 0, 최대값, 배열의 첫/마지막 요소, null/undefined 등
     - **예외 상황**: 잘못된 타입, 범위를 벗어난 값, 필수 파라미터 누락 등
   - 각 테스트 케이스마다 “무엇을 검증하는지”를 한 문장으로 명확히 기술한다

4. **테스트 코드 작성**
   - 기존 패턴을 엄격히 따르도록 테스트 코드를 작성한다
   - 테스트 구조는 Arrange(준비) → Act(실행) → Assert(검증) 순서를 일관되게 유지한다
   - 필요 시 목(Mock)·스텁·픽스처를 생성한다
   - 각 테스트는 독립적으로 실행 가능해야 하며, 테스트 간 의존성을 제거한다

5. **테스트 실행 및 결과 확인**
   - 작성한 테스트를 실행하고 전체 통과 여부를 확인한다
   - 실패 시, 테스트 코드 오류인지 대상 코드 결함인지 구분한다
   - 대상 코드의 결함을 발견한 경우, 코드 수정 없이 테스트 결과에 보고한다

## 출력 형식

```markdown
## 대상

- **파일**: [대상 파일 경로]
- **함수/클래스**: [테스트 대상 함수 또는 클래스명]
- **테스트 파일**: [생성한 테스트 파일 경로]

## 테스트 전략

- **테스트 프레임워크**: [사용한 프레임워크명]
- **준수한 패턴**: [참고한 기존 테스트 파일]
- **목(Mock) 처리 대상**: [목으로 대체한 외부 의존 목록]

## 추가한 테스트 목록

| # | 테스트명 | 검증 내용 | 구분 |
|---|----------|------------|------|
| 1 | [테스트 함수명] | [무엇을 검증하는지] | 정상 흐름 |
| 2 | [테스트 함수명] | [무엇을 검증하는지] | 경계값 |
| 3 | [테스트 함수명] | [무엇을 검증하는지] | 예외 상황 |

## 실행 결과

- **총 실행 건수**: [N건]
- **성공**: [N건]
- **실패**: [N건 (실패 시 상세 내용 기재)]

## 미포함 검증 항목

- [통합 테스트가 필요한 부분]
- [외부 서비스 의존으로 목 처리가 어려운 부분]
- [추가 검증을 권장하는 테스트 케이스]
```

## 유의사항

- 기존 테스트 파일을 덮어쓰거나 삭제하지 않는다. 신규 추가 또는 기존 파일에 안전하게 덧붙인다
- 테스트 코드에 실제 인증 정보, API 키, 개인정보를 포함하지 않는다
- 테스트 실행이 운영 환경이나 외부 서비스에 영향을 주지 않도록 확인한다
- 대상 코드에서 결함을 발견해도 직접 수정하지 않고 테스트 결과에만 보고한다

## 종료 조건

위 출력 형식에 맞춘 테스트 추가 보고서를 작성하면 종료한다.
테스트 코드가 작성·실행되었고, 결과가 명확히 보고되어 있어야 한다.
추가 수정이나 테스트 확장은 사용자 지시를 기다린다.

