본문 바로가기

교육/Python 0309-0313

10. Unit Test

import unittest


클래스 생성 시 unittest.TestCase 상속받아 클래스 정의


#-*- coding:ms949 -*-

import unittest


class MyMath:

    @staticmethod

    def mySum(n):

        nSum = 0

        for n in range(1,n+1):

            nSum += n

        return nSum

    @staticmethod

    def hap(a,b):

        return a+b


class MyMathUnitTest(unittest.TestCase):

    def setUp(self):    #unit test 시작 시 호출됨

        print("start unit Test")

    def tearDown(self): #unit test 종료 시 호출됨

        print("end unit Test")

        

    def test01(self):   #test case 함수는 항상 test 로 시작해야 한다

        rst = MyMath.mySum(10)

        self.assertEqual(rst, 55, "Math.mySum Test...")

    def test02(self):

        rst = MyMath.hap(10, 20)

        self.assertEqual(30, rst, "Math.hap Test...")


if __name__ == '__main__':

    # unittest.TestCase 상속받은 모든 unit test 시작

    unittest.main()

     

    # 특정 class의 unit test만 수행하고 싶을 때

    suit = unittest.TestLoader().loadTestsFromTestCase(MyMathUnitTest)

    unittest.TextTestRunner(verbosity=3).run(suit)  #verbosity 는 얼마나 상세하게 알려줄 것인지 level 정함

    

    # 특정 class의 특정 test case만 수행하고 싶을 때

    suit = unittest.TestSuite()

    suit.addTest(MyMathUnitTest("test02"))

    unittest.TextTestRunner(verbosity=2).run(suit)

'교육 > Python 0309-0313' 카테고리의 다른 글

11. 업무자동화 관련 module  (0) 2019.11.20
09. 문자열  (0) 2015.03.12
08. Library  (0) 2015.03.12
07. File IO  (0) 2015.03.11
06. 예외처리  (0) 2015.03.11