[英]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.