chatgpt

ChatGPT 테스트 코드 작성 프롬프트 - 단위 테스트/통합 테스트 작성 가이드

ChatGPT로 단위 테스트와 통합 테스트 코드를 작성하는 프롬프트입니다. Jest, Pytest, JUnit 등 다양한 테스트 프레임워크를 활용한 테스트 케이스 설계 방법을 안내합니다.

수정
💡

프롬프트 사용 방법

  1. 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
  2. 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
  3. 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요

💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!

📝 필요한 정보를 입력해주세요 (총 4개)

프로그래밍 언어에 대한 값을 입력하세요

테스트 프레임워크에 대한 값을 입력하세요

테스트 유형에 대한 값을 입력하세요

대상 코드에 대한 값을 입력하세요

📋 완성된 프롬프트 (복사해서 사용하세요)

당신은 FIRST 원칙을 준수하는 테스트 코드 작성 전문가입니다. 유지보수하기 쉬운 고품질 테스트 코드를 작성하세요.


## 프로젝트 정보
- 프로그래밍 언어: {{프로그래밍_언어}}
- 테스트 프레임워크: {{테스트_프레임워크}}
- 테스트 유형: {{테스트_유형}}
- 테스트 대상 코드: {{대상_코드}}

## 테스트 작성 가이드라인

### 1. AAA 패턴 (필수)
- **Arrange (준비)**: 테스트 데이터, Mock 설정
- **Act (실행)**: 테스트 대상 메서드 호출
- **Assert (검증)**: 예상 결과 확인

### 2. 테스트 커버리지 기준
- 정상 케이스: 유효한 입력으로 성공 검증
- 경계값 테스트: 최소값, 최대값, null, 빈 값
- 예외 케이스: 잘못된 입력, 에러 발생 검증

### 3. 커버리지 목표
| 종류 | 목표 |
|------|------|
| 라인 커버리지 | 80% 이상 |
| 분기 커버리지 | 70% 이상 |
| 함수 커버리지 | 90% 이상 |

입력하지 않은 항목은 원래 표시를 유지합니다.

간단 버전

테스트 코드를 작성해주세요.
언어: {{프로그래밍_언어}}, 프레임워크: {{테스트_프레임워크}}, 유형: {{테스트_유형}}
테스트할 코드: {{대상_코드}}
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

ChatGPT 테스트 주도 개발(TDD) 프롬프트 - 체계적인 테스트 코드 작성 가이드

ChatGPT로 테스트 주도 개발(TDD)을 체계적으로 수행하는 프롬프트입니다. Red-Green-Refactor 사이클, 단위 테스트 작성법, 모킹 기법, 테스트 커버리지 전략까지 전문가 수준의 TDD 가이드를 제공합니다.

TDD테스트주도개발
프롬프트와 사용 가이드
chatgpt

ChatGPT 코드 리팩토링 프롬프트 - 클린 코드 변환 가이드

ChatGPT로 레거시 코드를 클린 코드로 리팩토링하는 프롬프트입니다. SOLID 원칙, 디자인 패턴, 성능 최적화까지 체계적인 리팩토링 가이드를 제공합니다.

리팩토링클린코드
프롬프트와 사용 가이드
claude

클로드 테스트 코드 작성 프롬프트 - 유닛테스트 통합테스트 TDD

Claude로 유닛 테스트, 통합 테스트, E2E 테스트를 작성하는 프롬프트입니다. Jest, Pytest, JUnit 등 다양한 프레임워크를 지원합니다.

테스트코드유닛테스트
프롬프트와 사용 가이드
chatgpt

AI 출력 평가 세트 프롬프트: 정상·경계·공격 입력과 채점표 설계

작업 명세를 바탕으로 정상, 경계, 모호한 입력과 지시 덮어쓰기 사례를 포함한 AI 평가 세트를 설계합니다. 기대 결과와 실제 실행 결과를 분리하고 필드별 채점 기준을 정합니다.

AI평가평가세트
프롬프트와 사용 가이드