在unittest中使用assertTrue(==)vs assertEqual

jer*_*ean 8 python unit-testing python-unittest

在Python unittest模块中,在以下情况下使用assertTrue()vs. 是否有任何优点或缺点assertEqual()

self.assertTrue(a == b)
self.assertEqual(a, b)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 15

始终使用assertEqual(),因为它定制故障输出.

如果两个参数的类型匹配并且注册了特定于类型的辅助方法,则该方法会委托各种辅助方法向您显示断言失败时两个字符串或两个列表的不同之处.

assertTrue() 只能告诉你断言失败,而不是告诉你为什么.

assertEqual()文档:

另外,如果第一第二是完全相同的类型和一个list,tuple,dict,set,frozensetstr或任何类型的与一个子类的寄存器addTypeEqualityFunc()的特定类型平等功能将在以产生更有用的默认的错误消息被调用(也见在特定类型的方法列表).

assertTrue()在没有更具体的断言可用时才使用.