繁体   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