64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
---
|
|
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 사용
|
|
- 테스트 간 독립성 보장 (상태 공유 금지)
|
|
- 한국어 주석으로 테스트 의도 설명
|