unittest는 「파이썬 표준 라이브러리에 포함된 테스트 프레임워크」입니다.
외부 패키지 설치 없이 바로 쓸 수 있고, JUnit(자바 테스트 프레임워크)에서 영감을 받아 클래스 기반 구조를 가집니다.
기본 구조.
import unittest.
class TestMath(unittest.TestCase): def test_add(self): self.assertEqual(1+1, 2).
클래스는 TestCase 상속, 메서드는 test_로 시작.
실행은 python -m unittest 또는 unittest.main().
단언(assertion) 메서드.
self.assertEqual(a, b) — 같다.
self.assertTrue(x) — 참.
self.assertIn(x, list) — 포함.
self.assertRaises(ValueError, func, arg) — 예외 발생 확인.
다양한 단언이 가독성 좋은 메시지와 함께 제공됩니다.
setUp·tearDown.
매 테스트 전후로 실행되는 메서드.
setUp에서 DB 초기화·임시 파일 생성, tearDown에서 정리.
클래스 레벨은 setUpClass·tearDownClass(한 번만 실행).
장단점.
표준 라이브러리에 있어 의존성 없음.
다만 클래스 기반 구조가 다소 장황 — 모던 코드는 pytest를 더 선호.
기존 unittest 코드는 pytest와 호환되어 같이 쓸 수 있습니다.
한 줄 요약
unittest는 파이썬 표준 테스트 프레임워크입니다.
TestCase 상속·test_ 메서드·setUp/tearDown 구조.
외부 의존성 없지만 pytest가 더 모던하고 인기 있습니다.
더 알아볼 것
- pytest로의 마이그레이션
- unittest.mock — 동봉된 모킹 라이브러리
- 자동 발견 — python -m unittest discover