栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Unittest介绍和快速使

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unittest介绍和快速使

unittest的介绍和快速使用 什么是单元测试 unittest       1.单元测试:是指对软件中的最⼩可测试单元进⾏检查和 验证。对于单元测试中单元的含义,⼀般来说,要根据 实际情况去判定其具体含义, ⽐如编写的⼀个函数如下 function add(int a, int b){ return a + b }        2.例如: Java ⾥单元指⼀个类,图形化的软件中可以指⼀ 个窗⼝或⼀个菜单等。总的来说,单元就是⼈为规定的 最⼩的被测功能模块。单元测试是在软件开发过程中要 进⾏的最低级别的测试活动,软件的独⽴单元将在与程 序的其他部分相隔离的情况下进⾏测试        3.接⼝测试⾥⾯,⼀个接⼝可以作为⼀个单元 什么是unitest? 1.Python 单元测试框架,类似于 java 的 JUnit 框架 2.官⽹: https://docs.python.org/zh-cn/3.8/library/unittest.html 3.unittest 核⼼: TestFixture 、 TestCase 、 TestSuite 、 TestRunner 单元测试框架unittest⼊⻔ ⽤ import 语句引⼊ unittest 模块 测试的类都继承于 TestCase 类 setUp() 测试前的初始化⼯作; tearDown() 测试后的清除⼯作 ( 在每个测试⽅法运⾏时 被调⽤ ) 示例:
# -*- coding: UTF-8 -*-
import unittest
class UserTestCase(unittest.TestCase):
    def setUp(self):
        print(" set up 开始")
    def tearDown(self):
        print("tearDown 执⾏结束")
    def testCase1(self):
        print("test case1")
    def testCase2(self):
        print("test case2")
if __name__ == '__main__':
    unittest.main()

执行结果如下图:

 

断⾔(⽀持⾃定义报错信息) self.assertEqual() 查看源码 ⽂档: https://docs.python.org/zh-cn/3/library/unittest.html#unittest.TestCase.debug 注意: 1 、所有类中⽅法的⼊参为 self ,定义⽅法的变量也 要 “self. 变量 2 、定义测试⽤例,以 “test” 开头命名的⽅法,⽅法的⼊参 为 self 3 、 unittest.main() ⽅法会搜索该模块下所有以 test 开 头的测试⽤例⽅法,并⾃动执⾏它们 4 、⾃⼰写的 py ⽂件不能⽤ unittest.py 命名,不然会找 不到 TestCase 5 、⽤例成功是输出 . 失败是 F unittest单元测试 setUp 和 tearDown 每次⽤例执⾏前都会执⾏初始化条件 和结束条件 ``` 1 、所有类中⽅法的⼊参为 self ,定义⽅法的变量也 要 “self. 变量 2 、定义测试⽤例,以 “test” 开头命名的⽅法,⽅法的⼊参 为 self 3 、 unittest.main() ⽅法会搜索该模块下所有以 test 开 头的测试⽤例⽅法,并⾃动执⾏它们 4 、⾃⼰写的 py ⽂件不能⽤ unittest.py 命名,不然会找 不到 TestCase 5 、⽤例成功是输出 . 失败是 F ``` 执⾏所有⽤例只运⾏⼀次初始化和清理条件,⽤setupclass 、 teardownclass @classmethod def setUpClass(cls): print(" 在所有的测试⽤例执⾏之前,只执⾏⼀次 ============") @classmethod def tearDownClass(cls): print(" 在所有的测试⽤例执⾏之后,只执⾏⼀次 ============") 示例:
# -*- coding: UTF-8 -*-
import unittest
class UserTestCase2(unittest.TestCase):
   @classmethod
   def setUpClass(cls):
      print("setUpClass初始化")
   @classmethod
   def tearDownClass(cls):
      print("tearDownClass 资源清理")
   def testCase1(self):
      print("test case1")
   def testCase2(self):
      print("test case2")
      self.assertEqual(1, 1)
   @unittest.skip("跳过这个")
   def testCase3(self):
      print("test case3")
      self.assertEqual(1, 1)
if __name__ == '__main__':
 # verbosity 默认是1,为0的话最简洁,不输出每个⽤例执⾏结果,2 输出⽤例的详细执⾏结果
 unittest.main(verbosity=2)

结果如下:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1037520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号