(十一)ddt
1、利用ddt实现数据驱动,ddt是第三方模块,在终端输入pip install ddt 进行安装
导入:from ddt import ddt,data,unpack
a、如果unpack后的参数少于5个可以使用 推荐用unpack,但是需要注意参数不对等的情况,需要提供对应的参数来接收数据;
b、如果要对字典进行unpack,参数名需要与字典里面的key相对应,不可以取别的名字;
2、装饰器:会在函数运行之前运行(可自行了解)
3、运用:
1 from ddt import ddt, data, unpack
2
3 import unittest
4
5 test_data = [{"no":1,"name":"xiaozhu"},{"no":2,"name":"xiaoxiao"}]
6
7
8 @ddt # 装饰测试类
9 class TestMath (unittest.TestCase):
10
11 @data (*test_data) # 用来装饰测试方法,拿到几个数据就执行几条用例
12 @unpack
13 # 如果unpack后的参数少于5个可以使用 推荐用unpack,但是需要注意参数不对等的情况,需要提供对应的参数来接收数据
14 # 如果要对字典进行unpack,参数名需要与字典里面的key相对应,不可以取别的名字
15 def test_print_data(self,no,name):
16 print ("no:", no)
17 print ("name:", name)
打印出来的结果是:
no: 1
name: xiaozhu
no: 2
name: xiaoxiao
4、unnittest+excel结合使用的方法
一、超继承(原理要懂)
二、ddt(推荐使用)
具体操作流程:
a、写好类;
b、在unittest这个框架上去做单元测试,通过单元测试实现自己写的类的测试;
c、TestCase里面写测试用例,加self.assert进行断言和异常处理;
d、参数化,可以写在代码里面也可以写在Excel里面,写在Excel里面就可以用openpyxl来进行数据处理;
以上,第十部分到此结束~