파이썬 인터페이스 자동화 프레임 워크는 8 유닛 테스트를 사용

머리말

유닛 테스트 : 파이썬 유닛 테스트 프레임 워크는 JUnit을 에릭 감마 (Erich Gamma)와 켄트 벡 (Kent Beck)의 기반으로 sSmalltalk 테스트 프레임 워크.

A, 이용 유닛 테스트 기본 프레임

유닛 테스트는 주목해야한다 : ① 클래스를 TestCase의 클래스 유닛 테스트 단위 테스트를 상속, ② 테스트 케이스는 테스트로 시작해야합니다. 기본 전면 및 후면 유연한 사용을 배우고 주장 할 수있다.

1 설정 : "전"각 유스 케이스의 tearDown 한번 수행되는 ''각각의 유스 케이스는 테스트 케이스의 시작과 함께, 한 번 실행 된 후에.

설정이, 전방 및 후방의 tearDown 경우 모두 각각 실행된다.

에서 유닛 테스트에 수입의 TestCase

# 클래스 继承: TestCase에의
 클래스 Test_Login (TestCase에) :

    데프 설정 (자동) :
        인쇄 ( ' 각각의 경우 "전면는"한 번 실행 ' )

    데프의 tearDown (자기) :
        (인쇄 ' "후"한 번 실행되는 각각의 경우를 ' )

    # 다음은 사용 사례가 있습니다 처음에 시험이 필요합니다, 당신은 여러 사용 사례를 작성할 수 있습니다.
    데프 test_001 (자기) :
        인쇄 ( ' I이었다 예 : case_01 ' )

    데프 test_002 (자기) :
        인쇄 ( ' I이었다 예 : case_02 ' )

 2, setUpClass : 사전은 한 번만 실행; tearDownClass : 포스트를 한 번만.

 @classmethod, 괄호에 사용 된 기능 : 사용 수정해야 할 CLS

에서 유닛 테스트에 수입의 TestCase

# 클래스 继承: TestCase에의
 클래스 Test_Login (TestCase에) :
    
    # 사용을 수정해야합니다 @classmethod, 사용 된 기능 : CLS
    @classmethod
    데프 setUpClass (CLS) :
        인쇄 ( ' 모든 경우 "전면는"한 번만 수행 ' )

    @classmethod
    데프 tearDownClass (CLS) :
        (인쇄 ' 모두 수행 한 번만 사용 사례 "후" ' )

    데프 설정 (자동) :
        인쇄 ( ' 각각의 경우 "전면는"한 번 실행 ' )

    데프의 tearDown (자기) :
        (인쇄 ' "후"한 번 실행되는 각각의 경우를 ' )

    # 以下是用例,需已 test 开头,用例可以写多个。
    def test_001(self):
        print('我是用例:case_01')

    def test_002(self):
        print('我是用例:case_02')

 3、常用的两种断言方法(基本能供日常使用,不够自己去翻TestCase源码,如图二)

①两值相等:assertEqual(a , b)

②A值在B值里面:assertIn(A, B, msg) ;msg自己想写啥就写啥,类似出现错误后备注:断言失败返回控制台日志,等等

from unittest import TestCase

# class 继承:TestCase
class Test_Login(TestCase):

    def setUp(self):
        print('每个用例“前”都执行 1 次')

    def tearDown(self):
        print('每个用例“后”都执行 1 次')

    # 以下是用例,需已 test 开头,用例可以写多个。
    def test_001(self):
        print('我是用例:case_01')
        self.assertEqual((1+2), 3)                      # 断言两个值相等

    def test_002(self):
        print('我是用例:case_02')
        res = '广深'  # 假如这是实际结果
        self.assertIn('小龙', res, msg='他说没有小龙')  # 断言 小龙 在 res 中,如果不在msg是返回值
        self.assertTrue(res == '广深')                  # 断言两个值相等(也可以False,断言==、!=、in

 注意:不要执行用例去调用用例,用例是相互独立的,执行用例的顺序按照assic码:0-9 ,A-Z, a-z。欢迎来QQ交流群:482713805

추천

출처www.cnblogs.com/gsxl/p/11964177.html