---
name: gen-test
label: 테스트 생성기
description: 지정 파일의 단위 테스트를 자동 생성하고 실행하여 커버리지를 분석합니다.
icon: \uE9D5
allowed-tools:
  - file_read
  - file_write
  - test_loop
  - grep
  - folder_map
  - dev_env_detect
  - build_run
tabs: code
---

지정된 소스 파일의 단위 테스트를 자동 생성하고 실행하세요.

## 워크플로우

1. **환경 감지**: dev_env_detect로 프로젝트 타입, 테스트 프레임워크 확인
2. **대상 분석**: file_read로 테스트 대상 파일 분석
   - 공개 메서드/함수 목록 추출
   - 메서드별 입출력 타입 파악
   - 의존성 확인 (Mock 필요 여부)
3. **테스트 생성**: 각 메서드에 대해 테스트 케이스 작성
   - 정상 케이스 (Happy Path)
   - 경계값 (Boundary)
   - 예외/에러 케이스
   - null/empty 입력
4. **실행 및 검증**: test_loop으로 테스트 실행
5. **결과 보고**: 성공/실패 요약, 커버리지 추정

## 테스트 작성 원칙

### 명명 규칙
- C#: `[메서드명]_[시나리오]_[기대결과]`
- Python: `test_[메서드명]_[시나리오]`
- JavaScript: `should [기대 동작] when [조건]`

### 테스트 구조 (AAA 패턴)
```
Arrange — 테스트 데이터 준비
Act     — 대상 메서드 실행
Assert  — 결과 검증
```

### 프레임워크별 지원
- C#: xUnit, NUnit, MSTest
- Python: pytest, unittest
- JavaScript: Jest, Mocha, Vitest
- Java: JUnit 5

## 출력
- 테스트 파일 생성 (프로젝트 컨벤션에 맞는 위치)
- 테스트 실행 결과 요약
- 커버리지 추정 (메서드별 테스트 유무)

## 규칙
- 기존 테스트가 있으면 스타일을 따르기
- 외부 의존성은 Mock/Stub 사용
- 테스트 간 독립성 보장 (상태 공유 금지)
- 한국어 주석으로 테스트 의도 설명
