莲蓬乳和空手指,潭邵高速车祸,九龙仓兰宫
ddt
ddt 是第三方模块,需安装, pip install ddt
包含一个类装饰器@ddt和两个方法装饰器@data和@file_data
通常情况下,@data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。
@data([a,b],[c,d])
那么[a,b]和[c,d]各运行一次用例
@data([a,b],[c,d])
如果没有@unpack,那么[a,b]当成一个参数传入用例运行
如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递,具体情况实例
import unittest from ddt import ddt,data,unpack,file_data #data([a,b],[c,d]) #如果没有@unpack,那么[a,b]当成一个参数传入用例运行 #如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递 @ddt#类装饰器 class mytesting(unittest.testcase): def setup(self): print('this is the setup') @data([1,2,3])#方法装饰器 def test_1(self,value): print('value=',value) @data([3,2,1],[5,3,2],[10,4,2]) @unpack def test_2(self,a,b,c): print('a=%s,b=%s,expected=%s'%(a,b,c)) actual = int(a) - int(b) expected = int(c) self.assertequal(actual, expected) @data([2,3],[4,5]) def test_3(self,a,b): self.assertequal(a,b) @data({'a':'first','b':'second'}) @unpack def test_4(self,a,b): print('test_4',a,b) @file_data("test_data_list.json")#方法装饰器 def test_5(self,value): print('test_5_file_data,value=',value) def teardown(self): print('this is teardown') if __name__ == '__main__': unittest.main(verbosity=2)
test_1
test_2
test_3
i. 由于没有加@unpack, 虽然还是会被理解成2组测试数据,但是[2,3]作为一个整体被传给了a, 因为b就没有值传入了,所以一执行后报了 typeerror: test_compare() missing 1 required positional argument: 'b' 这句错
test_4
test_5
@data里面的数据格式
@data里面的数据可以是字典,列表,字典(注意字典的key值一定要跟参数名对应)
json文件创建内容参考如下(tip,将文件的后缀名改为.json):
[ "邓肯||蒂姆", "乔丹||迈克尔", "库里||斯蒂芬", "杜兰特||凯文", "詹姆斯||勒布朗" ]
原文参考:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论