在python assertEquals与assertEqual
在python unittest.TestCase
, assertEquals
和assertEqual
有什么区别吗?
如果没有,为什么有两个function? 只是为了方便?
好问题!
实际上,在Python 2.6中, assertEqual
和assertEquals
都是failUnlessEqual
便利别名。 信息来源如此声明:
# Synonyms for assertion methods assertEqual = assertEquals = failUnlessEqual
在Python 3中 ,就你而言, failUnlessEqual
是明确的弃用。 assertEquals
带有这个评论:-)
#断言方法的同义词
#复数是无证的。 保持他们的方式来阻止使用。
#不要添加更多。 不要删除。
#对这些不屑一顾的循环会让很多人烦恼。
所以,结果似乎是你应该使用任何你喜欢的Python 2.x,但倾向于Python 3的assertEqual
。
3.3更新:从26.3.7.1.1开始。 已弃用的别名 :
由于历史原因,一些TestCase方法有一个或多个别名,现在不推荐使用。 下表列出了正确的名称及其弃用的别名:
Method Name | Deprecated alias | Deprecated alias --------------+------------------+----------------- assertEqual() | failUnlessEqual | assertEquals ...
不仅仅是Python 3.x,因为Python 2.7 assertEquals
也被弃用:
Method Name | Deprecated alias(es) _________________________________________________________ assertEqual() | failUnlessEqual, assertEquals
从25.3.7.1.1开始。 已弃用的别名
我认为这是“只有一个显而易见的做法”与“使整个代码stream语义化的别名”之间的矛盾。 我个人发现我喜欢阅读
failIf(some_condition)
过度
assertFalse(some_condition)
但喜欢
assertEqual(a, b)
在另外两个( assertEquals(a, b)
困扰我的语法感)。
“只有一个显而易见的办法”今后优先。
在http://docs.python.org/library/unittest.html中没有提到assertEquals。; 但是,当我导入TestCase然后做一个“帮助(TestCase)”,它被列出。 我认为这只是方便的同义词。