ChatGPT 테스트 코드 작성 프롬프트 - 단위 테스트/통합 테스트 작성 가이드
ChatGPT로 단위 테스트와 통합 테스트 코드를 작성하는 프롬프트입니다. Jest, Pytest, JUnit 등 다양한 테스트 프레임워크를 활용한 테스트 케이스 설계 방법을 안내합니다.
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 4개)
프로그래밍 언어에 대한 값을 입력하세요
테스트 프레임워크에 대한 값을 입력하세요
테스트 유형에 대한 값을 입력하세요
대상 코드에 대한 값을 입력하세요
📋 완성된 프롬프트 (복사해서 사용하세요)
당신은 FIRST 원칙을 준수하는 테스트 코드 작성 전문가입니다. 유지보수하기 쉬운 고품질 테스트 코드를 작성하세요.
## 프로젝트 정보
- 프로그래밍 언어: {{프로그래밍_언어}}
- 테스트 프레임워크: {{테스트_프레임워크}}
- 테스트 유형: {{테스트_유형}}
- 테스트 대상 코드: {{대상_코드}}
## 테스트 작성 가이드라인
### 1. AAA 패턴 (필수)
- **Arrange (준비)**: 테스트 데이터, Mock 설정
- **Act (실행)**: 테스트 대상 메서드 호출
- **Assert (검증)**: 예상 결과 확인
### 2. 테스트 커버리지 기준
- 정상 케이스: 유효한 입력으로 성공 검증
- 경계값 테스트: 최소값, 최대값, null, 빈 값
- 예외 케이스: 잘못된 입력, 에러 발생 검증
### 3. 커버리지 목표
| 종류 | 목표 |
|------|------|
| 라인 커버리지 | 80% 이상 |
| 분기 커버리지 | 70% 이상 |
| 함수 커버리지 | 90% 이상 | 입력하지 않은 항목은 원래 표시를 유지합니다.
자동 복사를 사용할 수 없습니다. 아래 선택된 내용을 Ctrl+C 또는 ⌘C로 복사하거나, 길게 눌러 복사하세요.
간단 버전
테스트 코드를 작성해주세요.
언어: {{프로그래밍_언어}}, 프레임워크: {{테스트_프레임워크}}, 유형: {{테스트_유형}}
테스트할 코드: {{대상_코드}}
AAA 패턴으로 작성해주세요.
입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|---|---|---|---|
| 프로그래밍_언어 | 어떤 언어로 개발했나요? | JavaScript, Python 중 선택 | JavaScript, Python, Java, TypeScript |
| 테스트_프레임워크 | 어떤 도구로 테스트할까요? | Jest, pytest 중 선택 | Jest, pytest, JUnit, Mocha, Vitest |
| 테스트_유형 | 어떤 종류의 테스트인가요? | 단위 테스트, 통합 테스트 중 선택 | 단위 테스트, 통합 테스트, E2E 테스트 |
| 대상_코드 | 테스트할 코드를 알려주세요 | 테스트할 코드를 붙여넣어 주세요 | function calculateTotal(items) { ... } |
인풋 필드
[프로그래밍_언어]
▼ 드롭다운 선택
옵션: JavaScript, TypeScript, Python, Java, Go, C#, C++
placeholder: "TypeScript"
설명: 어떤 언어로 개발했나요?
[테스트_프레임워크]
▼ 드롭다운 선택
옵션: Jest, Vitest, Mocha, Jasmine, pytest, unittest, JUnit
placeholder: "Jest"
설명: 어떤 도구로 테스트할까요?
[테스트_유형]
▼ 라디오 버튼 선택
옵션: ☐ 단위 테스트 ☐ 통합 테스트 ☐ E2E 테스트
설명: 어떤 종류의 테스트인가요?
[대상_코드]
▼ 코드 에디터 (여러 줄 입력)
placeholder: "테스트할 코드를 붙여넣어 주세요"
설명: 테스트할 함수, 클래스, 컴포넌트 코드를 붙여넣어 주세요
Mock/Stub 전략
| 의존성 | 모킹 여부 |
|---|---|
| 데이터베이스 | ✅ Mock |
| HTTP API | ✅ Mock |
| 파일 시스템 | ✅ Mock |
| 순수 함수 | ❌ 실제 사용 |
| 도메인 로직 | ❌ 실제 사용 |
FIRST 원칙
- Fast: 빠르게 실행
- Independent: 서로 독립적
- Repeatable: 동일 결과 보장
- Self-Validating: 자동 성공/실패 판단
- Timely: 프로덕션 코드 직전 작성
프레임워크별 특이사항
| 프레임워크 | 주요 기능 |
|---|---|
| Jest | jest.fn(), jest.mock(), 스냅샷 테스트 |
| Vitest | vi.fn(), vi.mock(), 빠른 Watch 모드 |
| pytest | @pytest.fixture, @pytest.mark.parametrize |
| JUnit 5 | @DisplayName, @ParameterizedTest, Mockito |
테스트 작성 체크리스트
- AAA 패턴 준수
- 테스트 이름이 명확함
- 한 테스트 = 한 검증
- 정상/경계값/예외 케이스 모두 커버
- Mock 적절히 사용
자주 묻는 질문 (FAQ)
Q: 단위 테스트와 통합 테스트의 비율은 어떻게 정하나요?
A: 테스트 피라미드를 따르세요:
- 단위 테스트 70%: 빠르고 격리된 테스트
- 통합 테스트 20%: 모듈 간 상호작용 검증
- E2E 테스트 10%: 사용자 시나리오 검증 단위 테스트가 많을수록 피드백이 빠릅니다.
Q: Mock을 언제 사용해야 하나요?
A: 외부 의존성에는 Mock을 사용하세요:
- Mock 사용: DB, API 호출, 파일 시스템, 시간
- 실제 사용: 순수 함수, 도메인 로직, 유틸리티 과도한 모킹은 테스트의 신뢰성을 떨어뜨립니다.
Q: 테스트 이름은 어떻게 지어야 하나요?
A: 명확한 네이밍 컨벤션을 사용하세요:
// 좋은 예: 무엇을_어떤조건으로_기대결과
test('divide_byZero_throwsError', () => {})
test('calculateTotal_withDiscount_applies10Percent', () => {})
// 나쁜 예: 모호한 이름
test('test1', () => {})
test('calculation', () => {})
Q: 비동기 코드는 어떻게 테스트하나요?
A: 프레임워크별 방법을 사용하세요:
- Jest:
async/await또는resolves/rejects - pytest:
pytest-asyncio데코레이터 - JUnit:
CompletableFuture또는@Awaitility
🚀 AI 바로 열기
🔗 관련 프롬프트
ChatGPT 테스트 주도 개발(TDD) 프롬프트 - 체계적인 테스트 코드 작성 가이드
ChatGPT로 테스트 주도 개발(TDD)을 체계적으로 수행하는 프롬프트입니다. Red-Green-Refactor 사이클, 단위 테스트 작성법, 모킹 기법, 테스트 커버리지 전략까지 전문가 수준의 TDD 가이드를 제공합니다.
ChatGPT 코드 리팩토링 프롬프트 - 클린 코드 변환 가이드
ChatGPT로 레거시 코드를 클린 코드로 리팩토링하는 프롬프트입니다. SOLID 원칙, 디자인 패턴, 성능 최적화까지 체계적인 리팩토링 가이드를 제공합니다.
클로드 테스트 코드 작성 프롬프트 - 유닛테스트 통합테스트 TDD
Claude로 유닛 테스트, 통합 테스트, E2E 테스트를 작성하는 프롬프트입니다. Jest, Pytest, JUnit 등 다양한 프레임워크를 지원합니다.
AI 출력 평가 세트 프롬프트: 정상·경계·공격 입력과 채점표 설계
작업 명세를 바탕으로 정상, 경계, 모호한 입력과 지시 덮어쓰기 사례를 포함한 AI 평가 세트를 설계합니다. 기대 결과와 실제 실행 결과를 분리하고 필드별 채점 기준을 정합니다.