簡體   English   中英

Unittest - 測試字典相等性

[英]Unittest - Test for dict equality

我正在嘗試進行單元測試,但不太明白為什么這兩個字典顯示不相等。 我想知道是否有人可以給我解釋這種情況。 我的代碼是...

import unittest

class TestEmailValidator(unittest.TestCase):

    def test(self):
        known_dict = {
            'debo@foobar.com': True,
            'debo@gmail.com': False
        }

        result_dict = {}

        for key in known_dict.keys():
            result_dict[key] = is_email_valid(key)

        # debugger results
        # result_dict = {
        #    'debo@foobar.com': True,
        #    'debo@gmail.com': False
        # }

        if self.assertEqual(known_dict, result_dict):
            print "is_email_valid passed"
        else:
            print "is_email_valid failed"

if __name__ == '__main__':
    unittest.main()

我對assertEqualassertEqualsassertDictEquals得到相同的結果。 我曾嘗試在測試前將result_dict分配給known_dict ,但這也沒有通過。

如果有人能指出我為什么會發生這種情況,那就太好了。

你在濫用斷言。 所有的assertXYZ方法都不返回布爾值,它們只是在斷言失敗時引發異常。 由於這些方法不返回任何內容,因此它們隱式返回None 當將None評估為布爾值時,它被視為假,因此即使測試實際通過,您的測試is_email_valid failed打印is_email_valid failed

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM