반응형
Python unittest는 표준 라이브러리만으로 테스트 클래스를 만들고 test_ 메서드를 실행할 수 있는 테스트 프레임워크다.
TestCase를 상속한 클래스 안에 test_로 시작하는 메서드를 만들면 테스트 러너가 해당 메서드를 찾아 실행한다.
핵심 정리
unittest를 볼 때는 테스트 클래스, 테스트 메서드 이름 규칙, assertion, setUp과 tearDown의 역할을 구분하면 된다. 작은 함수나 클래스 동작을 반복해서 확인할 때 표준 라이브러리만으로 테스트를 만들 수 있다는 점이 장점이다.
- unittest.TestCase를 상속하면 테스트 케이스 클래스를 만들 수 있다.
- test_로 시작하는 메서드는 테스트 실행 대상이 된다.
- assertEqual, assertTrue 같은 assertion으로 기대값과 실제값을 비교한다.
- setUp은 각 테스트 전에 실행되고 tearDown은 각 테스트 뒤에 실행된다.
- pytest와 비교하면 unittest는 클래스와 메서드 구조가 더 명시적이다.
테스트 글을 볼 때는 실행 명령보다 어떤 상태를 준비하고 어떤 결과를 검증하는지 먼저 나누면 코드를 읽기 쉽다.
이어서 볼 글
- Python unittest setUp, tearDown 사용법과 assertion - unittest의 테스트 준비와 정리 훅을 더 자세히 다루는 글이다.
- pytest 사용 패턴 정리 - Python 테스트를 unittest와 pytest 방식으로 비교해 볼 수 있다.
- Python decorator class와 type 개념 정리 - decorator class를 테스트할 때 클래스 객체와 호출 흐름 이해가 필요하다.
unittest
??파이선에서 지원하는 테스트 프레임웍
??기본 메뉴얼은 여기
??이건 좀 더 캐주얼
??다음 예제를 보자
import unittest
class DestStringMethods(unittest.TestCase):
def dest_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
# self.assertTrue('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
??위의 예제 돌리면은 DestStringMethods라는 클래스가 unittst.TestCase를 상속받았기 때문에 그 안의 method중에서 test로 시작하는 메소드들은 테스트의 대상이 된다. (맨위에 dest_upper는 test로 시작하지 않아 빠짐)
반응형
'Programming' 카테고리의 다른 글
| Python decorator class와 type 개념 정리 (0) | 2026.05.16 |
|---|---|
| 최소제곱법과 선형회귀 Cost Function 정리 (0) | 2026.05.16 |
| DQN Experience Replay 개념 정리 (0) | 2026.05.16 |
| Python metaclass와 decorator 동작 원리 정리 (0) | 2026.05.16 |
| DokuWiki 문법과 플러그인 기본 정리 (0) | 2026.05.16 |
