예상 결과를 자동으로 검증하고 회귀를 막습니다.
테스트는 입력, 실행, 기대 결과 비교를 반복 가능한 코드로 만듭니다. unittest.TestCase의 assertEqual, assertRaises 등을 사용해 정상 경로와 경계·오류 경로를 함께 확인합니다.
예제에서 class TestFeature(unittest.TestCase): 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
테스트 이름은 어떤 조건에서 어떤 결과를 기대하는지 드러내고 서로 상태를 공유하지 않게 준비합니다. 한 테스트 실패가 다른 테스트 결과를 바꾸면 원인 찾기가 어렵습니다.
CI에서 모든 변경마다 빠른 단위 테스트를 실행하고 외부 시스템이 필요한 통합 테스트는 환경과 데이터를 격리합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 음수와 100을 넘는 점수에서 ValueError가 나는 테스트를 추가하세요.
구현 내부 호출 횟수만 검사하면 리팩터링 때 기능은 같은데 테스트가 깨질 수 있습니다. 공개 동작을 우선 검증하세요.
직접 바꿔보세요음수와 100을 넘는 점수에서 ValueError가 나는 테스트를 추가하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.