回答:
良い質問!
実際、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メソッドには、現在廃止されている1つ以上のエイリアスがありました。次の表に、非推奨のエイリアスとともに正しい名前を示します。
Method Name | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual | assertEquals
...
Python 3.xだけでなく、Python 2.7 assertEquals
も非推奨になりました。
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
これは、「それを行う唯一の明白な方法」と「全体的なコードフローを意味的にするエイリアス」の間の緊張であったと思います。個人的に私は読むのが好きだと思った
failIf(some_condition)
以上
assertFalse(some_condition)
しかし好きだった
assertEqual(a, b)
他の2 assertEquals(a, b)
つよりも(私の文法の感覚を悩ます)。
「それを行う唯一の明白な方法」は、今後優先されます。
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は単数形(3人称)の動詞であり、複数形ではありません。コメントライターの意味は正しく理解できたと思いますが、「複数」という言葉は間違っています。