• python接口自动化8-unittest框架使用


    前言

    unittest:Python单元测试框架,基于Erich Gamma的JUnit和Kent Beck的sSmalltalk测试框架。

    一、unittest框架基本使用

    unittest需要注意的是:①类,继承单元测试unittest 的 TestCase类;②测试用例必须以test开头。学会基本前后置灵活运用以及断言即可。

    1、setUp:每个用例“前”都执行 1 次、tearDown:每个用例“后”都执行 1 次、test开头的用例。

    setUp、tearDown既是每次用例都执行的前后置。

    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')
    
        def test_002(self):
            print('我是用例:case_02')

     2、setUpClass:只执行一次前置;tearDownClass:只执行一次后置。

     需使用修饰符:@classmethod,且函数括号用:cls

    from unittest import TestCase
    
    # class 继承:TestCase
    class Test_Login(TestCase):
        
        # 需使用修饰符:@classmethod,且函数用:cls
        @classmethod
        def setUpClass(cls):
            print('全部用例“前”只 执行 1 次')
    
        @classmethod
        def tearDownClass(cls):
            print('全部用例“后”只 执行 1 次')
    
        def setUp(self):
            print('每个用例“前”都执行 1 次')
    
        def tearDown(self):
            print('每个用例“后”都执行 1 次')
    
        # 以下是用例,需已 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

  • 相关阅读:
    【Spring Security学习之一】Spring Security入门
    【OAuth 2.0学习之一】OAuth 2.0入门
    【JWT学习之二】JWT实现单点登录
    【JWT学习之一】JWT入门
    【CAS学习之三】CAS客户端验证
    【CAS学习之二】部署CAS服务端
    【CAS学习之一】CAS入门
    ES 聚合分类(text字段)语句报错
    LeNet网络在fashion MNIST数据集上的实现
    动手深度学习 pytorch
  • 原文地址:https://www.cnblogs.com/gsxl/p/11964177.html
Copyright © 2020-2023  润新知