zoukankan      html  css  js  c++  java
  • 单元测试

    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()     

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

  • 相关阅读:
    解决mac os x下 tomcat启动报 java.net.BindException: Permission denied <null>:80 错误
    Mac下MySQL卸载方法 转载
    利用JS函数制作时钟运行程序
    HTML页面弹出窗口调整代码总结
    JavaScript代码放在HTML代码不同位置的差别
    二十五种网页加速方法和seo优化技巧
    web前端之Html和Css应用中的细节问题
    利用css制作横向和纵向时间轴
    利用html5看雪花飘落的效果
    利用jQuery实现鼠标滑过整行变色
  • 原文地址:https://www.cnblogs.com/cwl-bj/p/12690291.html
Copyright © 2011-2022 走看看