जवाबों:
अच्छा प्रश्न!
असल में, पाइथन 2.6 में, दोनों assertEqual
और assertEquals
एलियास को सुविधा है failUnlessEqual
। स्रोत उन्हें इस प्रकार घोषित करता है:
# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual
में अजगर 3 , अपनी बात करने के लिए, failUnlessEqual
स्पष्ट रूप से मान्य नहीं है। assertEquals
इस टिप्पणी को वहन करती है :-)
# मुखर तरीकों के लिए पर्यायवाची
# बहुवचन निर्विवाद है। उपयोग को हतोत्साहित करने के लिए उन्हें रखें।
# अधिक न जोड़ें। मत हटाओ।
# इन पर एक चक्रण चक्र के माध्यम से जाने से कई लोग नाराज होंगे।
तो, अपशॉट यह प्रतीत होता है कि आपको पाइथन 2.x के लिए जो कुछ भी पसंद है उसका उपयोग करना चाहिए, लेकिन assertEqual
पाइथन 3 की ओर रुख करें ।
ए 3.3 अपडेट: 26.3.7.1.1 से। पदावनत उपनाम :
ऐतिहासिक कारणों से, टेस्टकैस के कुछ तरीकों में एक या एक से अधिक उपनाम थे जो अब पदावनत हो गए हैं। निम्न तालिका उनके नामांकित उपनामों के साथ सही नामों को सूचीबद्ध करती है:
Method Name | Deprecated alias | Deprecated alias
--------------+------------------+-----------------
assertEqual() | failUnlessEqual | assertEquals
...
सिर्फ पायथन 3.x के लिए ही नहीं, चूंकि पायथन 2.7 assertEquals
को भी चित्रित किया गया है:
Method Name | Deprecated alias(es)
_________________________________________________________
assertEqual() | failUnlessEqual, assertEquals
मुझे लगता है कि यह "केवल एक ही स्पष्ट तरीका" बनाम "उर्फ" समग्र कोड प्रवाह को शब्दार्थ बनाने के बीच तनाव था। व्यक्तिगत रूप से मैंने पाया कि मुझे पढ़ना पसंद है
failIf(some_condition)
ऊपर
assertFalse(some_condition)
लेकिन पसंद किया
assertEqual(a, b)
अन्य दो पर (assertEquals(a, b)
व्याकरण की मेरी भावना को परेशान करता है)।
"इसे करने के लिए केवल एक स्पष्ट तरीका" ने आगे बढ़ने की पूर्वता ली है।
मुझे http://docs.python.org/library/unittest.html में assertEquals का कोई उल्लेख नहीं मिला । हालाँकि, जब मैं TestCase को आयात करता हूं और फिर एक "मदद (TestCase)" करता हूं, तो यह सूचीबद्ध है। मुझे लगता है कि यह सुविधा का सिर्फ एक पर्याय है।
यह लगभग वैसा ही है सिवाय इसके कि जोर-शोर से प्रतिशोध किया जाता है। यह यहाँ के रूप में मुखर उपयोग करने के लिए सिफारिश की है:
# 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/e42b705188271da108de42b55d9344642121aa2b/Lib/lib2to3/fixes/fix_asserts.py
assertEquals
। फिर भी व्याकरणिक रूप से, समता एक क्रिया का एकवचन (तीसरा व्यक्ति) रूप है, न कि बहुवचन। मुझे लगता है कि आप टिप्पणी-लेखक का सही मतलब समझ गए हैं, लेकिन 'बहुवचन' शब्द गलत है।