python unittest.TestCase中的assertEquals和assertEqual之间有区别吗?

如果没有,为什么有两个函数?只是为了方便?


当前回答

实际上,在Python 2.6中,assertEqual和assertEquals都是failUnlessEqual的别名。资料来源是这样声明的:

# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual

在Python 3中,根据你的观点,failUnlessEqual被明确地弃用了。assertEquals带有以下注释:-)

# 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.

因此,结果似乎是你可以在Python 2中使用任何你喜欢的。x,但倾向于assertEqual Python 3。

其他回答

我没有发现任何提到assertEquals在http://docs.python.org/library/unittest.html。然而,当我导入TestCase并执行“帮助(TestCase)”时,它会被列出。我认为这只是方便的同义词。

3.3更新:从26.3.7.1.1开始。不推荐使用的别名:

由于历史原因,一些TestCase方法有一个或多个别名,现在已弃用。下表列出了正确的名称及其不推荐使用的别名:

Method Name   | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual  | assertEquals
...

不仅仅是Python 3。由于Python 2.7的assertEquals也已弃用:

Method Name            | Deprecated alias(es)
_________________________________________________________
assertEqual()          | failUnlessEqual, assertEquals

从25.3.7.1.1。弃用别名

我知道它没有回答具体的问题,但如果你在这里搜索:

using deprecated method assertEquals()

您只需要将调用更改为.assertEqual()(删除equalS中的's')

实际上,在Python 2.6中,assertEqual和assertEquals都是failUnlessEqual的别名。资料来源是这样声明的:

# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual

在Python 3中,根据你的观点,failUnlessEqual被明确地弃用了。assertEquals带有以下注释:-)

# 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.

因此,结果似乎是你可以在Python 2中使用任何你喜欢的。x,但倾向于assertEqual Python 3。