gpt4 book ai didi

python - 单元测试 - 测试字典相等性

转载 作者:太空宇宙 更新时间:2023-11-03 16:31:50 24 4
gpt4 key购买 nike

我正在尝试进行单元测试,但不太明白为什么这两个字典显示不相等。我想知道是否有人可以给我解释这一事件。我的代码是...

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 方法都不返回 bool 值,它们只是在断言失败时引发异常。由于这些方法不返回任何内容,因此它们隐式返回 None。当将 None 评估为 bool 值时,它被视为 false,因此您的测试会打印 is_email_valid failed,即使测试实际上通过了。

关于python - 单元测试 - 测试字典相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com