유닛 테스트 프레임 워 크 에서 자주 사용 되 는 사례 로 딩 방법 을 공유 합 니 다.
테스트 용례: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 클래스 와 클래스 방법의 사용법 을 알 아야 합 니 다.
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)
이상 은 유닛 테스트 프레임 워 크 에서 자주 사용 되 는 몇 가지 사례 로 딩 방법 에 대한 상세 한 내용 입 니 다.유닛 테스트 프레임 워 크 사례 로 딩 하 는 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bot Builder v4.5 단위 테스트 : 대화 상자 클래스 테스트 - DateResolverDialog은 CancelAndHelpDialog 테스트를 살펴 보았지만 이번에는 DateResolverDialog 테스트를 살펴 보겠습니다. 이 대화 상자에서는 날짜별로 특화된 유효성 검사를 수행합니다. 그럼 조속히 테스트를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.