Answers:
好问题!
实际上,在Python 2.6中,assertEqual
和assertEquals
都是的方便别名failUnlessEqual
。消息来源因此声明它们:
# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual
在您看来,在Python 3中failUnlessEqual
已明确弃用。assertEquals
带有此评论:-)
#断言方法的同义词
#没有复数形式。保持这种方式阻止使用。
#不要添加更多。不要删除。
#对它们进行弃用周期会使很多人感到烦恼。
因此,结果似乎是您应该对Python 2.x使用任何您喜欢的东西,而倾向于对assertEqual
Python 3使用。
3.3更新:从26.3.7.1.1开始。弃用的别名:
由于历史原因,某些TestCase方法具有一个或多个别名,这些别名现已弃用。下表列出了正确的名称及其不赞成使用的别名:
Method Name | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual | assertEquals
...
不仅仅适用于Python 3.x,因为assertEquals
不推荐使用python 2.7 :
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
我在http://docs.python.org/library/unittest.html中找不到任何对assertEquals的提及。但是,当我导入TestCase并执行“ help(TestCase)”时,它会被列出。我认为这只是方便的代名词。
几乎一样,只是assertEquals被限制了。建议使用assertEqual,如下所示:
# Synonyms for assertion methods
# The plurals are undocumented. Keep them that way to discourage use.
# Do not add more. Do not remove.
# Going through a deprecation cycle on these would annoy many people.
assertEquals = assertEqual
在线来源:https : //github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Lib/lib2to3/fixes/fix_asserts.py
assertEquals
。但从语法上讲,equals是动词的单数(第三人称)形式,而不是复数形式。我认为您正确理解了注释作者的意思,但“复数”一词是错误的。