在進行自動化測試的時候,我們經常會遇到這樣一種情況。
我們的預期結果是 {'username':'kaishui'}
實際結果是{ 'code': 1 , 'username':'kaishui', 'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje' }
我們可以很容易的看出實際結果包含了預期結果的值,所以測試通過。
那麼怎麼使用python來判斷兩個字典中是否有着包含關係呢?
注:這裏的包含關係是指,A字典中有一個或多個key與B字典一模一樣,key對應的value值也一樣
方法很簡單,封裝後如下,可以直接拿去用啦。
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('測試通過')
else:
raise Exception('斷言不通過')
後面就是調用這個方法後的值了:
# 預期結果
expected = {'username':'kaishui'}
# 實際結果
result={
'code': 1 ,
'username':'kaishui',
'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje'
}
# 如何判斷實際結果中包含預期結果的值呢?
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('測試通過')
else:
raise Exception('斷言不通過')
assert_dict(expected,result)
實際結果就是測試通過。
我們改變expected中的值,代碼如下:
# 預期結果
expected = {'username':'kaishui2222'}
# 實際結果
result={
'code': 1 ,
'username':'kaishui',
'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje'
}
# 如何判斷實際結果中包含預期結果的值呢?
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('測試通過')
else:
raise Exception('斷言不通過')
assert_dict(expected,result)
那麼結果就是: