반응형
setUp과 tearDown은 Python unittest에서 각 테스트 전후에 준비와 정리를 자동으로 실행하는 메서드다.
여러 테스트가 같은 객체나 파일, 연결 상태를 필요로 할 때 setUp에서 준비하고 tearDown에서 정리하면 테스트 간 영향을 줄일 수 있다.
핵심 정리
setUp은 테스트 메서드가 실행되기 전에 매번 호출되고 tearDown은 테스트 메서드가 끝난 뒤 매번 호출된다. 이 구조를 쓰면 테스트마다 동일한 초기 상태를 만들고, 실패 여부와 관계없이 정리 로직을 한곳에 둘 수 있다.
- setUp은 각 test_ 메서드 실행 전에 호출된다.
- tearDown은 각 test_ 메서드 실행 뒤에 호출된다.
- 공통 테스트 데이터를 setUp에 두면 테스트 중복을 줄일 수 있다.
- 파일, 임시 디렉터리, 연결 같은 자원은 tearDown에서 정리하는 편이 좋다.
- assertion은 준비된 상태에서 기대 결과를 확인하는 단계다.
setUp과 tearDown은 테스트 전체에서 한 번 실행되는 훅이 아니라 각 테스트마다 반복 실행되는 준비와 정리 단계로 이해해야 한다.
이어서 볼 글
- Python unittest 사용법: TestCase와 test_ 메서드 - setUp과 tearDown이 속한 unittest 기본 구조를 설명한다.
- pytest 사용 패턴 정리 - pytest fixture와 unittest setUp 계열 흐름을 비교해 볼 수 있다.
setUp, tearDown
• test 마다 수행되는 초기화 및 정리 작업은 setUp(), tearDown()안에 넣으면 된다.
• 이 경우 매번 test_ 로 시작하는 함수가 불리기 전후로 setUp()과 tearDown()이 계속 불린다.
*
import unittest
class DestStringMethods(unittest.TestCase):
def setUp(self):
print 'setUp is called!!!'
def tearDown(self):
print 'tearDown is called!!!'
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
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()
• 제공되는 assertion. 그냥 assert 말고 다음거 써야한다.
반응형
'Programming' 카테고리의 다른 글
| Vimrc 설정 정리: 검색, 들여쓰기, 탭, 상태바 (0) | 2026.05.20 |
|---|---|
| Python 터미널 컬러링: ANSI escape sequence와 decorator 패턴 (0) | 2026.05.18 |
| pytest 사용 패턴 정리 (0) | 2026.05.17 |
| Python mixin 패턴 정리 (0) | 2026.05.17 |
| Matrix Completion과 추천 시스템 정리 (0) | 2026.05.17 |
