Відповіді:
Гарне питання!
Насправді в 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, оскільки Python 2.7 assertEquals
також застарів:
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
Я думаю, що це було напруженням між "лише одним очевидним способом зробити це" порівняно з "псевдонімом, щоб загальний код вийшов семантично". Особисто я виявив, що люблю читати
failIf(some_condition)
над
assertFalse(some_condition)
але сподобалось
assertEqual(a, b)
над іншими двома ( assertEquals(a, b)
турбує моє почуття граматики).
"Єдиний очевидний спосіб зробити це" мав перевагу вперед.
Я не знаходжу жодної згадки про assertEquals у http://docs.python.org/library/unittest.html . Однак, коли я імпортую TestCase, а потім виконую "довідку (TestCase)", вона відображається в списку. Я думаю, що це просто синонім зручності.
Це майже те саме, за винятком того, що assrtEquals перевидається. Рекомендується використовувати asrtEqual, як тут:
# 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
. І все-таки граматично рівне - це форма однини (3-ї особи) дієслова, а не множина. Я думаю, ви правильно зрозуміли, що означає автор коментарів, але слово "множина" помиляється.