【python】小技巧-判斷一個字典中是否包含另一個字典的值,即實際結果中是否包含預期結果

在進行自動化測試的時候,我們經常會遇到這樣一種情況。
我們的預期結果是 {'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)

那麼結果就是:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章