# ddt + unittest :来进行数据处理的第三方库
# 装饰器:在函数运行前运行
# 安装ddt :python -m pip install ddt
import unittest
from ddt import ddt,data,unpack
test_data1 = [1,3]
test_data2 = [[1,3],[4,5]]
test_data3 = [[1,3],[4,5,6]]
test_data4 = [{'no':'001','name':'kite'},{'no':'002','name':'shiguang'}]
@ddt # 装饰测试类
class TestMath(unittest.TestCase):
@data(test_data1)
def test_print_add1(self,item1):
print("[1,3]的打印结果是---item1:",item1) # item1: [1, 3]
@data(test_data1)
@unpack # 根据逗号拆分,注意参数不对等的情况
def test_print_add2(self,a,b):
print("*[1,3]的打印结果是---a:",a) # a: 1
print("*[1,3]的打印结果是---b:",b) # b: 3
@data(test_data2) # [[1,3],[4,5]]
@unpack
def test_print_add3(self, x1, x2):
print("x1:", x1) # x1: [1, 3]
print("x2:", x2) # x2: [4, 5]
@data(*test_data2) # 加*,脱一个参数 [1,3],[4,5]
@unpack
def test_print_add4(self, a, b): # 根据逗号拆分,注意参数不对等,会报错
print("a:", a)
print("b:", b) # 第一组a: 1 b: 3 第二组a: 4 b: 5
@data(*test_data3)
@unpack # unpack拆分后, 参数太多,可以先@data(*test_data2),然后索引找要的值,不推荐使用unpack
def test_print_add5(self, m = None, n = None, o = None):
print('m:', m) # m: (1, 3) m: (4, 5, 6)
print('n:',n)
print('o:',o)
# m: 1 m: 4
# n: 3 n: 5
# o: None o: 6
@data(*test_data4) # [{'no':'001','name':'kite'},{'no':'002','name':'shiguang'}]
@unpack
def test_print_add4(self, no, name):
print("no:", no)
print("name:", name)
# no: 001 no: 002
# name: kite name: shiguang
if __name__ == '__main__':
unittest.main()