zoukankan      html  css  js  c++  java
  • 单元测试框架 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开头是,不执行该方法。

  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13584935.html
Copyright © 2011-2022 走看看