यूनिट-टेस्ट सीमाओं और फिक्स्चर प्रथाओं को परिभाषित करता है जो सहयोगियों को अधिक मॉक किए बिना या कार्यान्वयन विवरणों को एक स्थिर API में परिवर्तित किए बिना डोमेन व्यवहार के लिए तेज़, निर्धारक साक्ष्य उत्पन्न करते हैं।
पैकेज स्थिति: संदर्भ संदर्भ मानव समीक्षा के लिए तैयार। अनुबंध और परीक्षण परिदृश्य पूर्ण हैं, लेकिन यह दावा नहीं किया जाता कि कोई अपनाने वाला कार्यान्वयन उन्हें पार कर चुका है।
निर्णय
सार्वजनिक मॉड्यूल इंटरफेस के माध्यम से यूनिट-टेस्ट निर्धारक नीति और स्थिति संक्रमण। स्पष्ट प्रासंगिक मानों, वास्तविक मान वस्तुओं, नियंत्रित घड़ियों और यादृच्छिकता के साथ छोटे बिल्डरों का उपयोग करें, और केवल सच्चे I/O सीमाओं पर फेक्स का उपयोग करें।
दायरा
- परीक्षण चयन, यूनिट सीमा, फिक्स्चर, बिल्डर, डबल्स, समय/यादृच्छिकता, त्रुटियाँ, गुण, म्यूटेशन विश्वास, नामकरण, और CI प्रतिक्रिया।
- डोमेन और एप्लिकेशन कोड जिनकी निर्भरताओं को प्रक्रिया में नियंत्रित किया जा सकता है।
- एकीकरण और अनुबंध परीक्षणों के साथ संबंध।
इस ब्लॉक के बाहर
- डेटाबेस, ट्रांसपोर्ट, ब्राउज़र, या प्रदाता एकीकरण परीक्षणों को प्रतिस्थापित करना।
- प्राथमिक गुणवत्ता उद्देश्य के रूप में लाइन कवरेज का पीछा करना।
अनुबंध
- प्रत्येक परीक्षण एक प्रेक्षित व्यवहार का नाम देता है, केवल प्रासंगिक स्थिति व्यवस्थित करता है, एक सार्वजनिक सीमा को कॉल करता है, और स्थिर आउटपुट या स्थिति का सत्यापन करता है।
- फिक्स्चर मान्य न्यूनतम वस्तुओं को डिफ़ॉल्ट करते हैं लेकिन व्यवहार के लिए महत्वपूर्ण फ़ील्ड के लिए स्पष्ट मान आवश्यक होते हैं।
- घड़ियाँ, आईडी, और यादृच्छिकता इंजेक्ट या कैप्चर की जाती हैं ताकि विफलताएँ पुनरुत्पादित हो सकें।
- मॉक केवल उस प्रोटोकॉल को सत्यापित करते हैं जहाँ इंटरैक्शन स्वयं अनुबंध है; अन्यथा फेक्स या आउटपुट सत्यापन वरीयता प्राप्त हैं।
- त्रुटि परीक्षण डोमेन कोड और सुरक्षित संदर्भ का सत्यापन करते हैं न कि भंगुर पूर्ण संदेशों का जब तक शब्दावली सार्वजनिक API न हो।
- बग फिक्स सबसे छोटा विफल परीक्षण उस स्तर पर जोड़ते हैं जहाँ दोष को रोका जा सकता है।
कार्यान्वयन मार्गदर्शन
- नामित परिदृश्य प्रीसेट के साथ टाइप किए गए फिक्स्चर बिल्डर बनाएं और कोई छिपे हुए नेटवर्क/डेटाबेस कॉल न करें।
- सीमा विभाजनों के लिए टेबल परीक्षण और जब उपयुक्त हो तो बीजगणितीय अपरिवर्तनीयताओं के लिए गुण परीक्षण का उपयोग करें।
- आवधिक रूप से म्यूटेशन परीक्षण या लक्षित दोष इंजेक्शन चलाएं ताकि सत्यापन-मुक्त कवरेज खोजा जा सके।
- साझा फिक्स्चर को एक डोमेन तक सीमित रखें और सार्वजनिक अनुबंध फिक्स्चर को जानबूझकर संस्करणित करें।
विफलता प्रबंधन और सुरक्षा उपाय
- एक अस्थिर यूनिट परीक्षण केवल एक मालिक और समाप्ति के साथ क्वारंटीन किया जाता है; इसके संरक्षित व्यवहार को प्रतिस्थापन साक्ष्य की आवश्यकता होती है।
- यदि किसी परीक्षण को आंतरिकताओं के व्यापक मॉकिंग की आवश्यकता है, तो मॉड्यूल सीमा पर पुनर्विचार करें या व्यवहार को एकीकरण परीक्षण में स्थानांतरित करें।
- यदि एक वैश्विक घड़ी या यादृच्छिक बीज परीक्षणों के बीच रिसता है, तो इसे निष्पादन क्रम पर निर्भर रहने के बजाय अलग करें।
सत्यापन और संचालन
- अवधि वितरण, फ्लेक दर, पुन: प्रयास-छिपी विफलताएँ, बदले गए कोड परीक्षण कवरेज, महत्वपूर्ण मॉड्यूल के लिए म्यूटेशन स्कोर, और छूटी हुई दोषों को परीक्षण स्तर के अनुसार ट्रैक करें।
- एक तेज़ प्रीसबमिट स्तर और स्पष्ट बजट के साथ पूर्ण यूनिट स्तर रखें।
- डिज़ाइन संकेतों के रूप में फिक्स्चर वृद्धि और डुप्लिकेट सेटअप की समीक्षा करें।
इस पैकेज में निष्पादन-समान उदाहरण फिक्स्चर और स्वीकृति अनुबंध हैं। पैकेज संरचना और मेटाडेटा जांचने के लिए संग्रह रूट से python tools/validate.py चलाएं; फिर लक्षित रिपॉजिटरी में परिदृश्यों को लागू और निष्पादित करें।
अपनाने की धारणाएँ
example.yamlमें नाम और संख्यात्मक मान एक अपनाने प्रोफ़ाइल हैं, सार्वभौमिक डिफ़ॉल्ट नहीं।- अपनाने वाली टीम को अपने सिस्टम के लिए अभिनेताओं, डेटा वर्गों, त्रुटि शब्दावली, और स्वामित्व को मैप करना होगा।
संदर्भ
- कोई बाहरी मानक स्रोत आवश्यक नहीं; यह पैकेज एक परियोजना निर्णय को परिभाषित करता है।