What is Unit Test?
- 테스트를 할 수 있느 가장 작은 단위를 테스트하는 코드를 작성해서 테스트를 하는 것을 말한다.
- 파이썬에는 unittest라는 유닛테스트를 가능케 해주는 모듈이 이미 포함 되어있다.
- unittest 외에도 pytest라는 패키지도 있다.
Python Unit Test 개념 및 용어
TestCase
: unittest 프레임 워크의 테스트 조직의 기본 단위
Fixture
: 테스트를 진행할 때 필요한 테스트용 데이터 혹은 설정 등을 이야기 한다. 주로 테스트가 실행되기 전이나 후에 생긴다.
assertion
: unittest에서 테스트하는 부분이 제대로 됐는지를 확인하는 부분. Assertion이 실패하면 테스트도 실패한다.
Unit Test 개발 가이드
- 먼저 unittest 모듈을 import한다.
import unittest
- unittest.TestCase 클래스를 상속하는 테스트 클래스를 만든다.
class MyCalcTest(unittest.TestCase):
- 테스트 클래스 안에 test_ 로 시작하는 테스트 메서드를 생성한다.
def test_add(self):
- 테스드 메서드에서는 일반적으로 테스트하고자 하는 함수나 메서드를 호출하고 그 결과값을 self.assert*() 메서드를 사용하여 확인한다. (assertEqual, assertTrue, assertFalse, assertRaises, assertRegex 등 다양한 assert 메서들을 사용할 수 있다).
def test_add(self):
c = myCalc.add(20, 10)
self.assertEqual(c, 30)
- 테스트 클래스가 완성되었으면, unittest.main()을 호출하여 테스트를 실행시킨다.