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)

结果如下:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值