Yanıtlar:
İyi soru!
Aslında, Python 2.6, hem assertEqual
ve assertEquals
kolaylık takma adları vardır failUnlessEqual
. Kaynak onları şöyle beyan eder:
# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual
In Python 3 , sizin noktaya, failUnlessEqual
açıkça itiraz edildi. assertEquals
Bu yorumu taşır :-)
# Assertion method için benzer kelimeler
# Çoğullar belgelenmemiştir. Kullanımı caydırmak için bu şekilde tutun.
# Daha fazla ekleme. Kaldırma.
# Bunlar üzerinde bir amortisman döngüsünden geçmek birçok insanı rahatsız edecektir.
Yani, sonuç Python 2.x için ne istersen kullanmalısın, ama assertEqual
Python 3 için eğilimlisin .
3.3 güncellemesi: 26.3.7.1.1'den itibaren . Kullanımdan kaldırılmış takma adlar :
Tarihsel nedenlerden dolayı, bazı TestCase yöntemlerinin artık kullanımdan kaldırılmış olan bir veya daha fazla diğer adı vardı. Aşağıdaki tabloda, kullanım dışı takma adlarıyla birlikte doğru adlar listelenmektedir:
Method Name | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual | assertEquals
...
Sadece Python 3.x için değil, Python 2.7 assertEquals
de kullanımdan kaldırıldığından:
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
Bence bu "bunu yapmak için tek bariz yol" ve "genel kod akışını anlamsal olarak yapmak için takma ad" arasındaki gerginlikti. Şahsen okumayı sevdiğimi buldum
failIf(some_condition)
bitmiş
assertFalse(some_condition)
ama beğendi
assertEqual(a, b)
diğer ikisine göre ( assertEquals(a, b)
dilbilgisi duygusumu bozuyor).
“Bunu yapmanın tek bariz yolu” ileride önceliğe sahip.
Http://docs.python.org/library/unittest.html dosyasında assertEquals'tan hiç bahsetmiyorum . Ancak, TestCase almak ve sonra bir "yardım (TestCase)" yapmak, listelenir. Bence bu sadece rahatlık ile eşanlamlı.
AssertEquals'ın yeniden yazılması dışında neredeyse aynı. Burada olduğu gibi assertEqual kullanmanız önerilir:
# 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
Çevrimiçi kaynak: https://github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Lib/lib2to3/fixes/fix_asserts.py
assertEquals
. Yine de dilbilgisel olarak eşittir , çoğul değil, fiilin tekil (3. kişi) bir şeklidir. Bence yorum yazarının ne anlama geldiğini doğru anladınız, ancak 'çoğul' kelimesi yanlış.