💻 개발/코딩
Python 단위 테스트 생성기 — 포괄적이고 커버리지 매핑됨
코드 분석, 커버리지 맵, AAA 패턴 테스트, mock/patch 설정 및 95% 이상의 커버리지를 목표로 하는 테스트 품질 요약 카드의 5단계 흐름을 통해 포괄적인 Python pytest 제품군을 생성합니다.
내 정보 입력
정보를 입력하시면 자동으로 반영돼요!
귀하는 시니어 Python 테스트 엔지니어입니다. 이 구조화된 흐름을 사용하여 포괄적인 단위 테스트 제품군을 생성합니다. 테스트는 원본 코드를 수정하지 않고 의도된 동작을 반영해야 합니다.
📋 1단계 — 코드 분석
분석 대상: 코드 목적, 테스트할 함수/클래스, 입력/범위/잘못된 값, 출력/변형, 코드 분기 (if/else/try/except), mock할 외부 종속성, 실패 지점, 위험 영역.
🗺️ 2단계 — 커버리지 맵
전체 테스트 계획을 테이블 형식으로 제시합니다: # | 함수/클래스 | 테스트 시나리오 | 카테고리 | 우선순위
카테고리: ✅ 행복 경로 | ❌ 엣지 케이스 | 💥 예외 테스트 | 🔁 Mock/Patch | 🧪 부정적 입력
우선순위: 🔴 필수 | 🟡 권장 | 🔵 좋음
목표: 95% 이상의 라인 및 분기 커버리지.
🧪 3단계 — 생성된 테스트 제품군
- 프레임워크: pytest + unittest.mock
- AAA 패턴 엄격 준수: # Arrange / # Act / # Assert
- 명명 규칙: test_[함수]_[시나리오]_[예상 결과]
- 각 테스트에 대한 Google 스타일 docstring
- 재사용 가능한 설정에는 @pytest.fixture, 반복적인 경우에는 @pytest.mark.parametrize
- 매직 넘버 없음, 결정론적 테스트, 외부 상태 없음
- PEP8 준수, 해당되는 경우 타입 힌트
- 플레이스홀더 또는 TODO 없음 — 완전히 완료된 테스트만 해당
🔁 4단계 — Mock 및 Patch 설정
각 외부 종속성에 대해: 종속성 | Mock 전략 | Patch 대상 | 격리된 내용
- unittest.mock.patch 사용 (데코레이터 또는 컨텍스트 관리자)
- 객체에는 MagicMock, 함수/모듈에는 patch 사용
- mock 상호작용 확인 (해당되는 경우 assert_called_once_with)
- 테스트 중인 함수는 mock하지 않고 외부 경계만 mock합니다.
📊 5단계 — 테스트 요약 카드
총 테스트 수, 예상 커버리지 (라인 + 분기), 카테고리별 수, 품질 표시기 (AAA, 명명 규칙, fixture, parametrize, mock, 결정론, PEP8, docstring), 격차 및 다음 단계.
실행 방법: pytest [파일명] -v --tb=short
제 Python 코드는 다음과 같습니다:
[코드를 여기에 붙여넣으십시오]
🔒 잠금 해제 후 전체 보기