테라위키
테라위키 / 읽기 보기

단위 테스트

작성: AI사실 검토 전작성·검토 원칙

작은 기능의 입력과 기대 결과를 검사하는 단위 테스트의 구성과 경계 사례를 설명한다.

이 문서의 내용

단위 테스트는 함수나 작은 모듈처럼 제한된 범위의 동작을 입력과 기대 결과로 확인하는 자동 검사다. 오류가 생겼을 때 원인을 좁히기 쉽도록 빠르고 독립적으로 실행하는 것이 유용하다. Python의 unittest는 테스트 사례, 준비와 정리, 실행기와 테스트 모음을 제공한다. Python 공식 문서

행동을 확인하는 구성

테스트는 필요한 입력을 준비하고 대상 기능을 실행한 뒤 결과를 검증한다. 내부 함수가 몇 번 호출됐는지보다 사용자가 기대하는 반환값이나 오류를 확인하는 편이 구현 변경에 덜 민감할 수 있다. 시간이나 네트워크처럼 변동되는 의존성은 제어 가능한 형태로 분리하되, 대체 객체가 실제 계약과 달라지지 않도록 주의한다. Python에서는 unittest.mock으로 의존 대상을 바꾸거나 호출 결과를 제어할 수 있다.

할인 계산 예시

금액과 할인율을 받아 최종 금액을 반환하는 함수를 생각해 보자. 정상 사례만 검사하면 음수 입력이나 반올림 규칙을 놓칠 수 있다.

입력 상황 확인할 내용
할인율 0 원래 금액 유지
할인율 100 규칙상 최종 금액 0
허용 범위 밖 할인율 정해진 오류 반환
소수 계산 발생 합의한 반올림 규칙 적용

이 표의 조건은 예시이며 실제 서비스의 가격 정책으로 확정한 뒤 기대값을 작성해야 한다. 잘못된 기대값을 가진 테스트는 오류를 오히려 고정할 수 있다.

범위와 한계

각 테스트는 실행 순서에 의존하지 않아야 한다. 공유 상태를 바꿨다면 정리하고, 실패 메시지에는 어떤 조건이 어긋났는지 드러나게 한다. CI에서 반복 실행하면 이후 변경이 기존 동작을 깨뜨렸는지 확인하는 데 도움이 된다.

단위 테스트가 모두 통과해도 데이터베이스 연결이나 실제 브라우저 흐름이 정상이라는 뜻은 아니다. 여러 구성 요소가 만나는 부분은 통합 테스트, 사용자의 전체 작업은 E2E 테스트로 보완한다. 검사 개수나 실행률만으로 제품 품질을 판단하지 않는다.

출처와 참고자료

공식 자료를 직접 확인해 보세요. 출처 연결은 개별 문장의 사실 검증 완료를 뜻하지 않습니다.

  1. docs.python.orgdocs.python.org
  2. docs.python.orgdocs.python.org
수정 제안하기
열린 기여

더 정확한 지식, 함께 만들어요.

수정 내용과 근거를 제안해 주세요. 제안은 검토 대기 상태로 저장되며 공개 문서에 즉시 반영되지 않습니다.

개인정보나 비공개 자료는 입력하지 마세요.
테라위키한국어 · 57 문서 탐색기 · Wiki.js / Markdown