• 单元测试


    Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。

    在说unittest之前,先说几个概念:

    TestCase 也就是测试用例

    TestSuite 多个测试用例集合在一起,就是TestSuite

    TestLoader是用来加载TestCase到TestSuite中的

    TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

    每种语言都有对应的单元测试框架:

        python   unittest

        java  junit

        php   phpunit

    单元测试:

      开发自己测自己写的代码

    安装:

    pip install unittest

     简单实用unittest

    import unittest
    
    def add(a,b):
        return a+b
    
    class AddTest(unittest.TestCase):
        def test_normal(self):          #函数名要以test开头,否则不会被执行
            result=add(1,1)
            self.assertEqual(2,result)  #对比实际结果,和预期结果
    
        def test_error(self):           #函数名要以test开头,否则不会被执行
             result=add(1,1)
             self.assertEqual(1,result)
    
    unittest.main()                     #会运行当前python文件里面的所有测试用例
    运行测试用例的有两种方法(产生测试报告
      1、unittest.main()此方法适合运行当前文件的run

       2、如果右键运行的时候出现(run 'Unittests in ......')就删掉方法1中的代码在运行

        

    下面是一些常用的断言,也就是校验结果

     assertEqual(a, b)     a == b      
     assertNotEqual(a, b)     a != b      
     assertTrue(x)     bool(x) is True      
     assertFalse(x)     bool(x) is False      
     assertIsNone(x)     x is None     
     assertIsNotNone(x)     x is not None   
     assertIn(a, b)     a in b    
     assertNotIn(a, b)     a not in b

     用例运行的先后顺序

    import unittest
    
    def add(a,b):
        return a+b
    
    class AddTest(unittest.TestCase):
        def test_normal(self):          
            print('test_normal')
            # result=add(1,1)
            # self.assertEqual(2,result)   
    
        def test_error(self):           
            print('test_error')
             # result=add(1,2)
             # self.assertEqual(3,result,'结果计算错误')
        def test_all(self):
            print('test_all')
    
        def test_zero(self):
            print('test_zero')
    
    unittest.main()     

    通过运行以上代码可以看出用例运行时按用例名称的字母顺序来运行的

  • 相关阅读:
    python基础之网络及网络编程
    三:C语言基础复习--指针(指针常量,常量指针,指针数组,数组指针)
    一:C语言基础复习--控制结构
    将python源文件打包成exe文件
    Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
    解决 java “错误:编码GBK 的不可映射字符”
    Fiddler小技巧之添加请求耗时Timetaken/qIP/请求方法Method列
    Python中如何打印空行
    Thinkpad F2不能进行重命名的问题
    Notepad++安装xml插件
  • 原文地址:https://www.cnblogs.com/cwl-bj/p/12690291.html
Copyright © 2020-2023  润新知