유닛 테스트 프레임 워 크 에서 자주 사용 되 는 사례 로 딩 방법 을 공유 합 니 다.

유닛 테스트 모듈 은 Python 이 자체 적 으로 가지 고 있 는 유닛 테스트 모듈 로 유닛 테스트 를 할 수 있 습 니 다.unittest 모듈 은 다음 과 같은 몇 개의 하위 모듈 을 포함 합 니 다.
테스트 용례:TestCase테스트 세트:TestSuite로 딩 사례:TestLoader실행 사례:TextTestRunner우선 간단 한 가감 곱 하기 수학 방법 류 를 작성 합 니 다.

class MathCalculate:
 '''
         
 '''
 def __init__(self, first_num, second_num):
  self.first_num = first_num
  self.second_num = second_num

 def add(self):
  '''
    
  :return:
  '''
  return self.first_num + self.second_num

 def subtract(self):
  '''
    
  :return:
  '''
  return self.first_num - self.second_num

 def multiply(self):
  '''
    
  :return:
  '''
  return self.first_num * self.second_num

 def divide(self):
  '''
    
  :return:
  '''
  try:
   return round(self.first_num / self.second_num, 2)
  except ZeroDivisionError:
   return '∞'
다음은 유닛 테스트 의 TestCase 클래스 를 이용 하여 테스트 용례 를 작성 합 니 다.작성 하기 전에 TestCase 클래스 와 클래스 방법의 사용법 을 알 아야 합 니 다.
  • TestCase 류 를 인용 하려 면 unittest 모듈 을 도입 해 야 합 니 다
  • TestCase 를 참조 하 는 것 은 테스트 클래스 를 만 드 는 것 이기 때문에 클래스 를 새로 만 들 려 고 합 니 다
  • 테스트 클래스 의 방법 명 은 모두 test처음에 이렇게 해야만 unittest 가 용례 를 식별 하고 실행 할 수 있다모듈 을 새로 만 들 고 간단 한 테스트 용례 류 를 만 듭 니 다.
    
    import unittest
    from python_for_unittest_testsuite.MathCalculate import MathCalculate as MC
    
    
    class TestMathCalculate(unittest.TestCase):
     '''
            
     '''
    
     def test_add(self):
      actual = MC(1, 1).add()
      self.assertEqual(2, actual, msg='        ')
    
     def test_subtract(self):
      actual = MC(1, 1).subtract()
      self.assertEqual(0, actual, msg='        ')
    
     def test_multiply(self):
      actual = MC(1, 1).multiply()
      self.assertEqual(1, actual, msg='        ')
    
     def test_divide(self):
      actual = MC(1, 1).divide()
      self.assertEqual(1, actual, msg='        ')
    
    
    if __name__ == '__main__':
     unittest.main()
    우 리 는 코드 를 실행 한 후에 다음 과 같은 결 과 를 얻 었 다.

    그러나 이렇게 하면 우리 의 요구 에 크게 미 치지 못 하고 계속 최적화 해 야 한다.그 다음 에 본론 으로 들 어가 야 한다.
    위 에서 우리 가 본 것 은 unittest.main()을 이용 하여 모든 용례 를 실행 하 는 것 이다.그러나 때때로 우 리 는 모든 테스트 용례 를 실행 할 필요 가 없고 자신의 수요 에 따라 용례 를 추가 할 수 있다.이때 우 리 는 TestSuite 를 사용 하여 단원 테스트 를 더욱 잘 실현 하도록 도와 야 한다.
    방법 1:테스트 용례 를 불 러 오고 addTest()방법 으로 테스트 용례 를 직접 추가 합 니 다.코드 시범 은 다음 과 같 습 니 다.
    
    import unittest
    from python_for_unittest_testsuite.test_math_calculate import TestMathCalculate
    
    suite = unittest.TestSuite()
    #        addTest()    :  (     )
    suite.addTest(TestMathCalculate('test_add'))
    suite.addTest(TestMathCalculate('test_subtract'))
    suite.addTest(TestMathCalculate('test_multiply'))
    suite.addTest(TestMathCalculate('test_divide'))
    
    #       ,      
    with open('test_math.txt', mode='w+', encoding='utf-8') as f:
     runner = unittest.TextTestRunner(f, 'text', 2)
     runner.run(suite)
    방법 2:테스트 클래스 를 불 러 옵 니 다.TestLoader 에 있 는 loadTests FromTestCase 를 통 해 테스트 클래스 를 불 러 옵 니 다.코드 시범 은 다음 과 같 습 니 다.
    
    import unittest
    from python_for_unittest_testsuite.test_math_calculate import TestMathCalculate
    
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    #      
    suite.addTest(loader.loadTestsFromTestCase(TestMathCalculate))
    
    
    #       ,      
    with open('test_math.txt', mode='w+', encoding='utf-8') as f:
     runner = unittest.TextTestRunner(f, 'text', 2)
     runner.run(suite)
    방법 3:테스트 모듈 을 불 러 옵 니 다.TestLoader 에 있 는 loadTests FromModule 을 통 해 테스트 클래스 를 불 러 옵 니 다.코드 시범 은 다음 과 같 습 니 다.
    
    import unittest
    from python_for_unittest_testsuite import test_math_calculate
    
    
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    #       
    suite.addTest(loader.loadTestsFromModule(test_math_calculate))
    
    
    #       ,      
    with open('test_math.txt', mode='w+', encoding='utf-8') as f:
     runner = unittest.TextTestRunner(f, 'text', 2)
     runner.run(suite)
    방법 4:테스트 사례 를 자동 으로 검색 하고 들 어 오 는 테스트 모듈 의 소속 디 렉 터 리 경로 에 따라 테스트 사례 를 자동 으로 찾 습 니 다.코드 시범 은 다음 과 같 습 니 다.
    
    import unittest
    
    #                      
    suite = unittest.defaultTestLoader.discover("G:\pycharm\PycharmProjects\python_class\python_for_unittest_testsuite")
    
    #       ,      
    with open('test_math.txt', mode='w+', encoding='utf-8') as f:
     runner = unittest.TextTestRunner(f, 'text', 2)
     runner.run(suite)
    이상 은 유닛 테스트 프레임 워 크 에서 자주 사용 되 는 몇 가지 사례 로 딩 방법 에 대한 상세 한 내용 입 니 다.유닛 테스트 프레임 워 크 사례 로 딩 하 는 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기