[英]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()
我對assertEqual
、 assertEquals
和assertDictEquals
得到相同的結果。 我曾嘗試在測試前將result_dict
分配給known_dict
,但這也沒有通過。
如果有人能指出我為什么會發生這種情況,那就太好了。
你在濫用斷言。 所有的assertXYZ
方法都不返回布爾值,它們只是在斷言失敗時引發異常。 由於這些方法不返回任何內容,因此它們隱式返回None
。 當將None
評估為布爾值時,它被視為假,因此即使測試實際通過,您的測試is_email_valid failed
打印is_email_valid failed
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.