Python Unit Test

Jinsung·2021년 12월 18일
0
post-custom-banner

Python Unit Test

파이썬에는 unittest라는 유닛테스트를 가능케 해주는 모듈이 있다.

개념 및 용어

  • TestCase : unittest 프레임 워크의 테스트 조직의 기본 단위
  • Fixture : 테스트를 진행할때 필요한 테스트용 데이터 혹은 설정 들을 이야기 한다. 주로 테스트가 실행되기 전이나 후에 생긴다.
  • assertion : unittest에서 테스트하는 부분이 제대로 됬는지를 확인하는 부분, Assertion이 실패하면 테스트도 실패한다.

가이드

  1. unittest 모듈을 import
import unittest
  1. unittest.TestCase 클래스를 상속하는 테스트 클래스를 만든다
class MyCalcTest(unittest.TestCase):
  1. 테스트 클래스 안에 test_로 시작하는 테스트 메서드를 생성한다
def test_add(self):
  1. test_add(self) 밑에 테스드 메서드에서는 일반적으로 테스트하고자 하는 함수나 메서드를 호출하고 그 결과값을 self.assert*() 메서드를 사용하여 확인한다. (assertEqual, assertTrue, assertFalse, assertRaises, assertRegex 등 다양한 assert 메서들을 사용할 수 있다).
def test_add(self):
    c = myCalc.add(20, 10)
    self.assertEqual(c, 30)
  1. 테스트 클래스가 완성되었으면, unittest.main()을 호출하여 테스트를 실행시킨다.

예제

1

# mycalc.py
def add(a, b):
    return a + b

def substract(a, b):
    return a - b

2

# tests.py
import unittest
import mycalc

class MyCalcTest(unittest.TestCase):

    def test_add(self):
        c = mycalc.add(20, 10)
        self.assertEqual(c, 30)

    def test_substract(self):
        c = mycalc.substract(20, 10)
        self.assertEqual(c, 10)

if __name__ == '__main__':
    unittest.main()

3

> python -m unittest --v
test_add (test_my_calc.MyCalcTest) ... ok
test_substract (test_my_calc.MyCalcTest) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
post-custom-banner

0개의 댓글