在pythonunittest
模块中,在以下情况下使用assertTrue()
与assertEqual()
有什么优点或缺点吗?
self.assertTrue(a == b)
self.assertEqual(a, b)
最佳答案
始终使用assertEqual()
,因为它自定义故障输出。
方法委托给各种帮助器方法,以向您展示当断言失败时,两个字符串或两个列表是如何不同的,前提是两个参数的类型都匹配并且注册了一个特定于类型的帮助器方法。assertTrue()
只能告诉您断言失败的情况,而不能说明原因。
从assertEqual()
documentation开始:
此外,如果第一个和第二个是完全相同的类型,并且是list
、tuple
、dict
、set
、frozenset
或str
中的一个,或者是子类用addTypeEqualityFunc()
注册的任何类型,则将调用类型特定的相等函数,以生成更有用的默认错误消息(另请参见list of type-specific methods)。
只有在没有更多可用的特定断言时才使用assertTrue()
。