单元测试框架 python

1、为什么要做单元测试

  • 单元测试更细致、更有针对性
  • 单元测试能测试到很多系统测试无法达到的测试
  • 单元测试是在编码中做的测试,发现问题方便修改,而系统测试的问题修改成本可能变高
  • 单元测试是自动化测试

2、单元测试实例操作

  1、定义一个PC类,里面有div方法

 1 class PC(object):
 2     def add(self, x, y):
 3         return x + y
 4     def ub(self, x, y):
 5         return x - y
 6     def mul(self, x, y):
 7         return x * y
 8     # def div(self, x, y):
 9     #     return x / y
10     def div(self, x, y):
11         try: # 错误捕捉
12             return float(x)/float(y) #将x y转换为浮点型后相除
13         except:
14             return None #如果无法转换或不能相除,则返回none
15 ####################################################################
16 if __name__ == '__main__':
17     pc = PC()
18     print(pc.add(100, 2345))
19     print(pc.sub(100, 2345))
20     print(pc.mul(100, 2345))
21     print(pc.div(100, 4))

  2、创建一个单元测试用例类,继承自unittest.TestCase类 

1 import unittest
2 
3 class MyTestCase(unittest.TestCase):
4     def test_something(self):
5         self.assertEqual(True, False)
6 
7 if __name__ == '__main__':
8     unittest.main()

  3、定义setUp,tearDown方法,setUp里面实例化了被测类,并生成一个成员变量 

1 @classmethod
2 def setUpClass(cls):
3 def setUp(self):
4 def test_01(self): 
5 ....
6 def tearDown(self): 
7 @classmethod 
8 def tearDownClass(cls): 

  4、写每一个测试用例:一个有效等价类用例、多个无效等价类用例

  5、a)传入不同的参数以调用被测方法;

     b)用断言语句验证返回结果

3、python单元测试框架原则:

  1. 继承自unittest.TestCase
  2. 以test'开头的方法就是一个测试用例
  3. 每个测试用例执行之前会执行setUp,执行完会执行tearDown
  4. 有一系列的断言语句验证测试结果:assertEqual,assertIn等
  5. setUpClass、tearDownClass:所有用例执行前执行一次setUpClass,后执行一次tearDownClass

4、单元测试setUp()和tearDown()

setUp:表示前置条件,它在每一个用例执行之前必须会执行一次 

setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件。

tearDown:表示释放资源,它在每次用例执行完之后会执行一次

tearDown可以理解为我们测试完毕后,需要关闭浏览器。

运行的顺序:

1. 每次执行函数方法时,必须先执行一次setUp()函数,执行完一个函数方法后,必须再执行一次tearDown()函数

2. 执行函数的时候有序号时,例如testxx1,testxx2 会根据序号来进行执行

3. 当函数方法不是以test开头是,不执行该方法。

原文地址:https://www.cnblogs.com/hereisdavid/p/13584935.html