Python 在unittest中使用assertTrue(=)与assertEqual
在PythonPython 在unittest中使用assertTrue(=)与assertEqual,python,unit-testing,python-unittest,Python,Unit Testing,Python Unittest,在Pythonunittest模块中,在以下情况下使用assertTrue()与使用assertEqual()相比,有哪些优点或缺点 self.assertTrue(a == b) self.assertEqual(a, b) 始终使用assertEqual(),因为它可以自定义故障输出 如果两个参数的类型匹配并注册了特定于类型的帮助器方法,则该方法将委托给各种帮助器方法,以向您展示断言失败时两个字符串或两个列表的区别 assertTrue()只能告诉您断言失败的情况,而不能说明原因 从: 此
unittest
模块中,在以下情况下使用assertTrue()
与使用assertEqual()
相比,有哪些优点或缺点
self.assertTrue(a == b)
self.assertEqual(a, b)
始终使用
assertEqual()
,因为它可以自定义故障输出
如果两个参数的类型匹配并注册了特定于类型的帮助器方法,则该方法将委托给各种帮助器方法,以向您展示断言失败时两个字符串或两个列表的区别
assertTrue()
只能告诉您断言失败的情况,而不能说明原因
从:
此外,如果第一个和第二个是完全相同的类型,并且是list
、tuple
、dict
、set
、frozenset
或str
或子类使用addTypeEqualityFunc()注册的任何类型之一
将调用特定于类型的相等函数,以生成更有用的默认错误消息(另请参见)
只有在没有更具体的断言可用时才使用
assertTrue() 如果要检查非真值,请选择assertEqual
以获取有意义的错误消息。在我看来,与要检查的值相比,在定义预期部分时,它更具可读性
如果要检查是否存在真正的布尔结果,如assertTrue(user.hasAdminRole())
,请在assertEqual
上选择assertTrue
。是的,assertTrue()
的要点是对表达式的真值进行断言。该问题特别适用于平等性测试。