मेरे पास वर्गों का एक समूह है जो मूल्यों के सत्यापन से संबंधित है। उदाहरण के लिए, एक RangeValidatorवर्ग यह जांचता है कि कोई मान निर्दिष्ट सीमा के भीतर है या नहीं।
प्रत्येक सत्यापनकर्ता वर्ग में दो विधियाँ शामिल हैं: is_valid(value)जो कि रिटर्न Trueया Falseमूल्य पर निर्भर करता है, और ensure_valid(value)जो एक निर्दिष्ट मूल्य के लिए जाँच करता है और या तो कुछ भी नहीं करता है यदि मूल्य मान्य है, या एक विशिष्ट अपवाद को फेंकता है यदि मूल्य पूर्वनिर्धारित नियमों से मेल नहीं खाता है।
वर्तमान में इस पद्धति से जुड़े दो इकाई परीक्षण हैं:
वह जो अमान्य मान से गुजरता है, और यह सुनिश्चित करता है कि अपवाद को फेंक दिया गया था।
def test_outside_range(self): with self.assertRaises(demo.ValidationException): demo.RangeValidator(0, 100).ensure_valid(-5)वह जो एक वैध मान पास करता है।
def test_in_range(self): demo.RangeValidator(0, 100).ensure_valid(25)
हालांकि दूसरा परीक्षण अपना काम करता है - यदि अपवाद फेंका जाता है, तो विफल रहता है और अगर ensure_validकुछ भी नहीं फेंकता है तो सफल होता है - इस तथ्य की कि assertअंदर कोई भी अजीब नहीं है। कोई व्यक्ति जो इस तरह के कोड को पढ़ता है, वह तुरंत खुद से पूछेगा कि ऐसा परीक्षण क्यों है जो कुछ भी नहीं करता प्रतीत होता है।
क्या यह एक मौजूदा अभ्यास है जब परीक्षण के तरीके जो एक मूल्य नहीं लौटाते हैं और साइड इफेक्ट नहीं होते हैं? या मुझे एक अलग तरीके से परीक्षण को फिर से लिखना चाहिए? या बस एक टिप्पणी डाल रहा हूँ कि मैं क्या कर रहा हूँ?
selfसंदर्भ के लिए सहेजें ) और कोई परिणाम नहीं देता है, तो यह शुद्ध कार्य नहीं है।
voidकई भाषाओं में कहा जाता है और इसमें मूर्खतापूर्ण नियम होते हैं।) वैकल्पिक रूप से, आपके पास एक अनंत हो सकता है। लूप (जो "रिटर्न नॉट रिजल्ट" तब भी काम करता है " वास्तव में इसका मतलब है कि कोई परिणाम नहीं मिलता है।
unit -> unitजो इकाई को कुछ विशेष-आवरणों के बजाय एक मानक डेटाटाइप मानता है। दुर्भाग्य से, यह सिर्फ इकाई देता है और कुछ नहीं करता है।