개발

테스트 케이스 생성

체계적인 단위 테스트와 통합 테스트 케이스

테스트QA자동화
176
개발
프롬프트 템플릿
아래 템플릿을 복사해서 ChatGPT나 다른 AI 도구에 붙여넣어 사용하세요.
다음 함수/기능에 대한 테스트 케이스를 작성해주세요: ``` [테스트할 코드 붙여넣기] ``` 테스트 프레임워크: [Jest/Mocha/PyTest 등] 테스트 유형: [단위/통합/E2E] ## 🧪 테스트 케이스 ### 📋 테스트 개요 - **테스트 대상:** [함수/클래스/모듈명] - **테스트 유형:** [단위/통합/E2E] - **프레임워크:** [프레임워크명] - **커버리지 목표:** [%] ### ✅ 정상 케이스 (Happy Path) #### 테스트 1: 기본 동작 확인 ```javascript describe('[함수명] 기본 동작', () => { test('정상적인 입력값으로 올바른 결과 반환', () => { // Given const input = [테스트 데이터]; const expected = [예상 결과]; // When const result = [함수명](input); // Then expect(result).toBe(expected); }); }); ``` #### 테스트 2: 경계값 테스트 ```javascript test('경계값에서 올바른 동작', () => { const borderCases = [ { input: [경계값1], expected: [예상결과1] }, { input: [경계값2], expected: [예상결과2] } ]; borderCases.forEach(({ input, expected }) => { expect([함수명](input)).toBe(expected); }); }); ``` ### ❌ 예외 케이스 (Error Cases) #### 테스트 3: 잘못된 입력값 ```javascript test('잘못된 입력값에 대한 에러 처리', () => { const invalidInputs = [null, undefined, '', -1]; invalidInputs.forEach(input => { expect(() => [함수명](input)).toThrow('[에러메시지]'); }); }); ``` #### 테스트 4: 타입 에러 ```javascript test('잘못된 타입 입력시 TypeError 발생', () => { expect(() => [함수명]('string')).toThrow(TypeError); expect(() => [함수명]({})).toThrow(TypeError); }); ``` ### 🔄 통합 테스트 #### 테스트 5: 의존성과의 상호작용 ```javascript describe('의존성 모듈과의 통합', () => { let mockDependency; beforeEach(() => { mockDependency = jest.fn(); }); test('의존성 모듈 호출 확인', () => { // Given mockDependency.mockReturnValue([모킹 결과]); // When [함수명]([입력값]); // Then expect(mockDependency).toHaveBeenCalledWith([예상 파라미터]); }); }); ``` ### 📊 성능 테스트 #### 테스트 6: 실행 시간 측정 ```javascript test('성능 요구사항 만족', () => { const startTime = performance.now(); [함수명]([대용량 데이터]); const endTime = performance.now(); const executionTime = endTime - startTime; expect(executionTime).toBeLessThan(1000); // 1초 이내 }); ``` ### 🎯 테스트 데이터 ```javascript const testData = { valid: [ { input: [값1], expected: [결과1] }, { input: [값2], expected: [결과2] } ], invalid: [ null, undefined, '', -1, NaN ], edge: [ { input: [최소값], expected: [결과] }, { input: [최대값], expected: [결과] } ] }; ``` ### 📋 테스트 체크리스트 - [ ] 정상 동작 확인 - [ ] 경계값 테스트 - [ ] 예외 상황 처리 - [ ] 타입 검증 - [ ] 성능 요구사항 - [ ] 의존성 모킹 - [ ] 코드 커버리지 확인
사용 팁

1. 맥락 정보 추가

프롬프트의 대괄호 [ ] 부분을 실제 상황에 맞는 구체적인 정보로 교체하세요.

2. 단계별 실행

복잡한 작업의 경우 프롬프트를 여러 단계로 나누어 실행하면 더 좋은 결과를 얻을 수 있습니다.

3. 결과 검토

AI가 생성한 결과를 항상 검토하고 필요에 따라 수정하여 사용하세요.