分析
@data(不带的列表)会将整个列表作为参数传入,test0()获取的是整个二维列表
@data(带的列表)会将整个列表的子元素作为参数逐个传入,test1()将二维列表的元素逐个传入,一个元素一个case
@unpack 将要传入的元素解包后传入,test_p()将将二维列表的元素逐个传入,并将元素拆解后传入
代码
import unittest
from ddt import ddt, data, unpack
@ddt
class Test_info2(unittest.TestCase):
data0 = [[1,2,3],[4,5,6]]
@data(data0) # 将整个data0作为参数传入
def test0(self,item):
print("------------- test0() ------------")
print(item)
@data(*data0) # 将data0每个子元素(list)作为参数整个传入
def test1(self,item):
print("------------- test1() ------------")
print(item)
@data(*data0)
@unpack # 将data0每个子元素再拆成a,b,c参数传入
def test_p(self, a,b,c):
print("------------- test_p() ------------")
print(f"a:{a}")
print(f"b:{b}")
print(f"c:{c}")
if __name__ == '__main__':
unittest.main()