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]被分解開,按照用例中的兩個引數傳遞,具體情況例項
importunittest
from ddt import
ddt,data,unpack,file_data
#data([a,b],[c,d])
#如果沒有@unpack,那麼[a,b]當成乙個引數傳入用例執行
#如果有@unpack,那麼[a,b]被分解開,按照用例中的兩個引數傳遞
@ddt#
類裝飾器
class
mytesting(unittest.testcase):
defsetup(self):
print('
this is the setup')
@data([1,2,3])#
方法裝飾器
deftest_1(self,value):
print('
value=
',value)
@data([3,2,1],[5,3,2],[10,4,2])
@unpack
deftest_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])
deftest_3(self,a,b):
self.assertequal(a,b)
@data()
@unpack
deftest_4(self,a,b):
print('
test_4
',a,b)
@file_data(
"test_data_list.json
")#方法裝飾器
deftest_5(self,value):
print('
test_5_file_data,value=
',value)
defteardown(self):
print('
this is teardown')
if__name__ == '
__main__':
unittest.main(verbosity=2)
test_1
執行次數:1次
引數值:value=[1,2,3]
執行結果:pass
test_2
執行次數:3次
引數值:第一輪a=3,b=2,c=1;第二輪a=5,b=3,c=2;第三輪a=10,b=4,c=2
執行結果:第一輪、第二輪通過,第三輪失敗fail
失敗原因:self.assertequal(a-b = c)失敗
test_3
執行次數:2次
引數值:第一輪a=[2,3];第二輪a=[4,5]
執行結果:執行錯誤error
失敗原因:缺少引數b
i. 由於沒有加@unpack, 雖然還是會被理解成2組測試資料,但是[2,3]作為乙個整體被傳給了a, 因為b就沒有值傳入了,所以一執行後報了 typeerror: test_compare() missing 1 required positional argument: 'b' 這句錯
test_4
執行次數:1次
引數值:a = first,b=second
執行結果:pass
test_5
執行次數:test_data_list.json檔案裡面的資料數
引數值:每次value = test_data_list.json裡面的一條資料
執行結果:pass
@data裡面的資料格式
@data裡面的資料可以是字典,列表,字典(注意字典的key值一定要跟引數名對應)
["鄧肯||蒂姆",
"喬丹||麥可",
"庫里||史蒂芬",
"杜蘭特||凱文",
"詹姆斯||勒布朗"
]
原文參考:
python 數獨 Python中的數獨檢查器
我正在嘗試用python建立乙個數獨檢查器 ill formed 5,3,4,6,7,8,9,1,2 6,7,2,1,9,5,3,4,8 1,9,8,3,4,2,5,6,7 8,5,9,7,6,1,4,2,3 4,2,6,8,5,3,7,9 7,1,3,9,2,4,8,5,6 9,6,1,5,3,7...
python解奧數題 python 來做奧數題
def init self,count 6,digitals 0,1,2,3,4,5,6,7,8,9 super datagenerator,self init self.count count self.digitals digitals def get digitals self return ...
python求黑洞數 求解黑洞數
問題描寫 黑洞數又稱圈套數,是類具有奇特轉換特性的整數。任何1個數字不全相同的整數,經有限 重排求差 操作,總會得到某1個或1些數,這些數即為黑洞數。重排求差 操作即把組成該數的數字重排後得到的最大數減去重排後得到的最小數。舉個例子,3位數的黑洞數為495.簡易推導程序 隨意找個數,如297,3個位...