क्या इन दो तरीकों के बीच कोई रनटाइम-तर्क अंतर है? या कोई व्यवहार मतभेद?
यदि नहीं, तो मुझे __init__
को भूलना चाहिए और केवल setUpClass
भाषा भाषा ओओपी प्रतिमान के बजाय नामस्थानों जैसे unittests कक्षाओं के बारे में सोचने का उपयोग करना चाहिए?मुझे setUpClass का उपयोग कब करना चाहिए और जब __init__?
उत्तर
दोनों काफी अलग हैं।
setUpClass
एक वर्ग विधि, एक के लिए है, ताकि वे केवल आपके वर्ग स्थापित गुण दूँगा।
उन्हें अलग-अलग समय पर भी बुलाया जाता है। परीक्षण धावक प्रत्येक परीक्षण के लिए एक नया उदाहरण बनाता है। यदि आप कक्षा में 5 परीक्षण विधियों को शामिल करते हैं, तो 5 उदाहरण बनाए जाते हैं और __init__
को 5 बार कहा जाता है।
setUpClass
सामान्यतः केवल को कहा जाता है। (यदि आप अलग-अलग वर्गों से टेस्ट ऑर्डरिंग और परीक्षण विधियों को घुमाते हैं तो setUpClass
को कई बार कहा जा सकता है, tearDownClass
का उपयोग ठीक से साफ करने के लिए करें और यह कोई समस्या नहीं होगी)।
इसके अलावा, एक परीक्षण धावक आमतौर पर परीक्षण चलाने की शुरुआत में सभी परीक्षण उदाहरण बनाता है; यह आमतौर पर सस्ता है, क्योंकि टेस्ट इंस्टेंस (ज्यादा) स्थिति नहीं रखते हैं इसलिए बहुत मेमोरी नहीं लेती है।
अंगूठे के नियम के रूप में, आपको __init__
का उपयोग करना चाहिए। सभी परीक्षणों के बीच साझा राज्य बनाने के लिए setUpClass
का उपयोग करें, और प्रति-परीक्षण स्थिति बनाने के लिए setUp
का उपयोग करें। setUp
को एक परीक्षण चलाने से ठीक पहले बुलाया जाता है, इसलिए आप परीक्षण के लिए आवश्यक होने तक बहुत मेमोरी-गहन स्थिति बनाने से बच सकते हैं, और पहले नहीं।
- 1. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 2. मुझे _aligned_malloc() का उपयोग कब करना चाहिए?
- 3. मुझे CompiledQuery का उपयोग कब करना चाहिए?
- 4. मुझे ConcurrentSkipListMap का उपयोग कब करना चाहिए?
- 5. मुझे सेफफोर्स का उपयोग कब करना चाहिए?
- 6. मुझे GC.SuppressFinalize() का उपयोग कब करना चाहिए?
- 7. मुझे पैरामीटर का उपयोग कब करना चाहिए?
- 8. मुझे पेरर ("...") और fprintf (stderr, "...") का उपयोग कब करना चाहिए?
- 9. मुझे std_logic_vector का उपयोग कब करना चाहिए और मुझे अन्य डेटा प्रकारों का उपयोग कब करना चाहिए?
- 10. उद्देश्य-सी में, मुझे कक्षा विधियों का उपयोग कब करना चाहिए और मुझे उदाहरण विधियों का उपयोग कब करना चाहिए?
- 11. मुझे अपाचे कॉमन्स 'Validate.isTrue का उपयोग कब करना चाहिए, और मुझे केवल' assert 'कीवर्ड का उपयोग कब करना चाहिए?
- 12. हमें कक्षा का उपयोग कब करना चाहिए और जब हमें
- 13. मुझे ConcurrentDictionary और Dictionary का उपयोग कब करना चाहिए?
- 14. मुझे ऑटोमैपर का उपयोग कब करना चाहिए और
- 15. मुझे remove_reference और add_reference का उपयोग कब करना चाहिए?
- 16. मुझे ओरेकल की इंडेक्स संगठित तालिका का उपयोग कब करना चाहिए? या, मुझे कब नहीं चाहिए?
- 17. जब "उपयोग" का उपयोग करना चाहिए और जब "आवश्यकता" और जब "ऑटोोलॉइड" perl [अच्छा प्रोग्रामिंग अभ्यास] में उपयोग करना चाहिए?
- 18. आपको जेसीआर का उपयोग कब करना चाहिए और आपको जेपीए/आरडीबीएमएस का उपयोग कब करना चाहिए?
- 19. मुझे "स्वयं" कीवर्ड का उपयोग कब करना चाहिए?
- 20. मुझे अपने प्रश्नों में लेनदेन का उपयोग कब करना चाहिए?
- 21. मुझे स्कैला की @inline एनोटेशन का उपयोग कब करना चाहिए (और मुझे नहीं चाहिए)?
- 22. मुझे MySQL संपीड़ित प्रोटोकॉल का उपयोग कब करना चाहिए?
- 23. मुझे UINT32_C(), INT32_C(), ... में मैक्रोज़ का उपयोग कब करना चाहिए?
- 24. कोचबेस - मुझे N1QL बनाम दृश्यों का उपयोग कब करना चाहिए?
- 25. मुझे क्लोजर में डेफटाइप का उपयोग कब करना चाहिए?
- 26. मुझे -inl.h फ़ाइलों का उपयोग कब करना चाहिए?
- 27. पायथन में, मुझे मेटा क्लास का उपयोग कब करना चाहिए?
- 28. मुझे जावास्क्रिप्ट फ्रेमवर्क लाइब्रेरी का उपयोग कब करना चाहिए?
- 29. मुझे डोमेन विशिष्ट भाषा का उपयोग कब करना चाहिए?
- 30. मुझे गिट स्टैश का उपयोग कब करना चाहिए?