당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
목적
지정된 함수·모듈에 대해, 프로젝트의 기존 테스트 패턴을 준수한 유닛 테스트를 추가한다. 정상 흐름, 경계값, 예외 상황을 폭넓게 검증하여 회귀 방지와 사양 명확화를 동시에 달성하는 테스트를 작성한다.
입력
- 테스트 대상 파일 경로, 함수명 또는 모듈명 (필수)
- 선택: 테스트 관점 지정 (정상 흐름만, 경계값 중심, 예외 상황 중심 등)
- 선택: 특히 주의해야 할 엣지 케이스 정보
- 정보가 부족한 경우 사용자에게 질문한다
절차
대상 코드 분석 및 이해
- 지정된 파일·함수를 읽는다
- 함수 시그니처(인자 타입, 반환 타입)를 확인한다
- 처리 로직의 분기 조건, 반복문, 예외 처리 흐름을 파악한다
- 의존 중인 외부 모듈·함수를 식별한다
기존 테스트 패턴 조사
- 프로젝트 내 기존 테스트 파일을 검색한다
- 기존 테스트를 분석해 아래 항목을 파악한다:
- 테스트 프레임워크 (pytest, Jest, JUnit 등)
- 파일 명명 규칙 (
test_*.py, *.test.ts, *_test.go 등)
- 테스트 함수 명명 규칙
- 설정/정리 방식 (fixture, beforeEach 등)
- 목(Mock)·스텁 사용 방식
- 검증(Assertion) 스타일
테스트 케이스 설계
- 아래 관점으로 테스트 케이스를 체계적으로 도출한다:
- 정상 흐름: 대표 입력에서 기대 결과가 정확히 반환되는지 검증
- 경계값: 빈 문자열, 0, 최대값, 배열의 첫/마지막 요소, null/undefined 등
- 예외 상황: 잘못된 타입, 범위를 벗어난 값, 필수 파라미터 누락 등
- 각 테스트 케이스마다 “무엇을 검증하는지”를 한 문장으로 명확히 기술한다
테스트 코드 작성
- 기존 패턴을 엄격히 따르도록 테스트 코드를 작성한다
- 테스트 구조는 Arrange(준비) → Act(실행) → Assert(검증) 순서를 일관되게 유지한다
- 필요 시 목(Mock)·스텁·픽스처를 생성한다
- 각 테스트는 독립적으로 실행 가능해야 하며, 테스트 간 의존성을 제거한다
테스트 실행 및 결과 확인
- 작성한 테스트를 실행하고 전체 통과 여부를 확인한다
- 실패 시, 테스트 코드 오류인지 대상 코드 결함인지 구분한다
- 대상 코드의 결함을 발견한 경우, 코드 수정 없이 테스트 결과에 보고한다
출력 형식
## 대상
- **파일**: [대상 파일 경로]
- **함수/클래스**: [테스트 대상 함수 또는 클래스명]
- **테스트 파일**: [생성한 테스트 파일 경로]
## 테스트 전략
- **테스트 프레임워크**: [사용한 프레임워크명]
- **준수한 패턴**: [참고한 기존 테스트 파일]
- **목(Mock) 처리 대상**: [목으로 대체한 외부 의존 목록]
## 추가한 테스트 목록
| # | 테스트명 | 검증 내용 | 구분 |
|---|----------|------------|------|
| 1 | [테스트 함수명] | [무엇을 검증하는지] | 정상 흐름 |
| 2 | [테스트 함수명] | [무엇을 검증하는지] | 경계값 |
| 3 | [테스트 함수명] | [무엇을 검증하는지] | 예외 상황 |
## 실행 결과
- **총 실행 건수**: [N건]
- **성공**: [N건]
- **실패**: [N건 (실패 시 상세 내용 기재)]
## 미포함 검증 항목
- [통합 테스트가 필요한 부분]
- [외부 서비스 의존으로 목 처리가 어려운 부분]
- [추가 검증을 권장하는 테스트 케이스]
유의사항
- 기존 테스트 파일을 덮어쓰거나 삭제하지 않는다. 신규 추가 또는 기존 파일에 안전하게 덧붙인다
- 테스트 코드에 실제 인증 정보, API 키, 개인정보를 포함하지 않는다
- 테스트 실행이 운영 환경이나 외부 서비스에 영향을 주지 않도록 확인한다
- 대상 코드에서 결함을 발견해도 직접 수정하지 않고 테스트 결과에만 보고한다
종료 조건
위 출력 형식에 맞춘 테스트 추가 보고서를 작성하면 종료한다.
테스트 코드가 작성·실행되었고, 결과가 명확히 보고되어 있어야 한다.
추가 수정이나 테스트 확장은 사용자 지시를 기다린다.
1---2name: test-add3description: 지정된 함수나 모듈에 유닛 테스트를 추가한다. 기존 테스트 패턴에 맞춘다.4---56당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.78## 목적910지정된 함수·모듈에 대해, 프로젝트의 기존 테스트 패턴을 준수한 유닛 테스트를 추가한다. 정상 흐름, 경계값, 예외 상황을 폭넓게 검증하여 회귀 방지와 사양 명확화를 동시에 달성하는 테스트를 작성한다.1112## 입력1314- 테스트 대상 파일 경로, 함수명 또는 모듈명 (필수)15- 선택: 테스트 관점 지정 (정상 흐름만, 경계값 중심, 예외 상황 중심 등)16- 선택: 특히 주의해야 할 엣지 케이스 정보17- 정보가 부족한 경우 사용자에게 질문한다1819## 절차20211. **대상 코드 분석 및 이해**22 - 지정된 파일·함수를 읽는다23 - 함수 시그니처(인자 타입, 반환 타입)를 확인한다24 - 처리 로직의 분기 조건, 반복문, 예외 처리 흐름을 파악한다25 - 의존 중인 외부 모듈·함수를 식별한다26272. **기존 테스트 패턴 조사**28 - 프로젝트 내 기존 테스트 파일을 검색한다29 - 기존 테스트를 분석해 아래 항목을 파악한다:30 - 테스트 프레임워크 (pytest, Jest, JUnit 등)31 - 파일 명명 규칙 (`test_*.py`, `*.test.ts`, `*_test.go` 등)32 - 테스트 함수 명명 규칙33 - 설정/정리 방식 (fixture, beforeEach 등)34 - 목(Mock)·스텁 사용 방식35 - 검증(Assertion) 스타일36373. **테스트 케이스 설계**38 - 아래 관점으로 테스트 케이스를 체계적으로 도출한다:39 - **정상 흐름**: 대표 입력에서 기대 결과가 정확히 반환되는지 검증40 - **경계값**: 빈 문자열, 0, 최대값, 배열의 첫/마지막 요소, null/undefined 등41 - **예외 상황**: 잘못된 타입, 범위를 벗어난 값, 필수 파라미터 누락 등42 - 각 테스트 케이스마다 “무엇을 검증하는지”를 한 문장으로 명확히 기술한다43444. **테스트 코드 작성**45 - 기존 패턴을 엄격히 따르도록 테스트 코드를 작성한다46 - 테스트 구조는 Arrange(준비) → Act(실행) → Assert(검증) 순서를 일관되게 유지한다47 - 필요 시 목(Mock)·스텁·픽스처를 생성한다48 - 각 테스트는 독립적으로 실행 가능해야 하며, 테스트 간 의존성을 제거한다49505. **테스트 실행 및 결과 확인**51 - 작성한 테스트를 실행하고 전체 통과 여부를 확인한다52 - 실패 시, 테스트 코드 오류인지 대상 코드 결함인지 구분한다53 - 대상 코드의 결함을 발견한 경우, 코드 수정 없이 테스트 결과에 보고한다5455## 출력 형식5657```markdown58## 대상5960- **파일**: [대상 파일 경로]61- **함수/클래스**: [테스트 대상 함수 또는 클래스명]62- **테스트 파일**: [생성한 테스트 파일 경로]6364## 테스트 전략6566- **테스트 프레임워크**: [사용한 프레임워크명]67- **준수한 패턴**: [참고한 기존 테스트 파일]68- **목(Mock) 처리 대상**: [목으로 대체한 외부 의존 목록]6970## 추가한 테스트 목록7172| # | 테스트명 | 검증 내용 | 구분 |73|---|----------|------------|------|74| 1 | [테스트 함수명] | [무엇을 검증하는지] | 정상 흐름 |75| 2 | [테스트 함수명] | [무엇을 검증하는지] | 경계값 |76| 3 | [테스트 함수명] | [무엇을 검증하는지] | 예외 상황 |7778## 실행 결과7980- **총 실행 건수**: [N건]81- **성공**: [N건]82- **실패**: [N건 (실패 시 상세 내용 기재)]8384## 미포함 검증 항목8586- [통합 테스트가 필요한 부분]87- [외부 서비스 의존으로 목 처리가 어려운 부분]88- [추가 검증을 권장하는 테스트 케이스]89```9091## 유의사항9293- 기존 테스트 파일을 덮어쓰거나 삭제하지 않는다. 신규 추가 또는 기존 파일에 안전하게 덧붙인다94- 테스트 코드에 실제 인증 정보, API 키, 개인정보를 포함하지 않는다95- 테스트 실행이 운영 환경이나 외부 서비스에 영향을 주지 않도록 확인한다96- 대상 코드에서 결함을 발견해도 직접 수정하지 않고 테스트 결과에만 보고한다9798## 종료 조건99100위 출력 형식에 맞춘 테스트 추가 보고서를 작성하면 종료한다.101테스트 코드가 작성·실행되었고, 결과가 명확히 보고되어 있어야 한다.102추가 수정이나 테스트 확장은 사용자 지시를 기다린다.