मैं आपके सहयोगियों के साथ हूं, लेकिन केवल एक बिंदु तक।
इकाई परीक्षणों के साथ मुद्दा यह है कि वे अक्सर और नासमझी से तुच्छ मामलों पर लिखे जाते हैं जहां कोड की सरसरी जांच से पता चलता है कि यह काम करेगा चाहे कोई भी हो। उदाहरण के लिए:
def add(x, y)
x + y
end
यह सुनिश्चित करने के लिए एक दर्जन परीक्षणों के साथ कि अतिरिक्त वास्तव में मनमाने ढंग से चुने गए उपयोग-मामलों के लिए काम करेगा। ओह ...
इकाई परीक्षण के पीछे सामान्य आधार है: यदि आपके कोड में कोई बग नहीं है, ऐसा इसलिए है क्योंकि आपने पर्याप्त परीक्षण नहीं किया है। अब, उचित इकाई परीक्षण कब लिखें। उत्तर:
- जब आप परीक्षण कर रहे हैं
- जब आप डिबगिंग कर रहे हैं
- जैसा कि आप वास्तव में मुश्किल चीजें विकसित कर रहे हैं
चलो हर एक के माध्यम से चलते हैं, यह मानते हुए कि आप किसी तरह का वेब ऐप विकसित कर रहे हैं।
आप नई कार्यक्षमता के लिए कुछ कोड लिखते हैं, और इसे अब तक यथोचित रूप से काम करना चाहिए। आप फिर अपने ब्राउज़र के लिए पहुंचते हैं और सत्यापित करते हैं कि यह अधिक गहनता से परीक्षण करके काम करता है, है ना? बज़टस्ट! ... गलत जवाब। आप एक इकाई परीक्षण लिखें। यदि आप ऐसा नहीं करते हैं, तो आप शायद कभी नहीं करेंगे। और यह उन जगहों में से एक है जहां इकाई परीक्षण बहुत अच्छी तरह से काम करते हैं: उच्च स्तर की कार्यक्षमता का परीक्षण करने के लिए।
आप तब एक बग की खोज करते हैं (जो कभी भी याद नहीं करता है?)। यह हमें दो बिंदुओं पर लाता है। आप कोड में वापस गोता लगाते हैं और चरणों का पालन करना शुरू करते हैं। जैसा कि आप करते हैं, कुंजी ब्रेक बिंदुओं पर इकाई परीक्षण लिखें जहां लगातार और सही डेटा होना महत्वपूर्ण है।
अंतिम बिंदु अन्य तरीका है। आप कुछ बालों की कार्यक्षमता डिज़ाइन कर रहे हैं जिसमें मेटा-प्रोग्रामिंग का भार शामिल है। यह हजारों संभावित परिदृश्यों के साथ एक निर्णय पेड़ को जल्दी से पैदा करता है, और आपको यह सुनिश्चित करने की आवश्यकता है कि उनमें से प्रत्येक अंतिम एक काम करता है। इस तरह की बातें लिखते समय, एक साधारण दिखने वाला परिवर्तन यहाँ या खाद्य श्रृंखला के आगे अकल्पनीय परिणाम हो सकता है। कहते हैं, आप SQL ट्रिगर्स का उपयोग करके एक एमपीटीटी कार्यान्वयन डिजाइन कर रहे हैं - ताकि यह कई-पंक्ति विवरणों के साथ काम कर सके।
इस तरह के कांटेदार वातावरण में, आप आमतौर पर अपने परीक्षणों को अत्यधिक स्वचालित करना चाहते हैं। इसलिए आप परीक्षण डेटा की पीढ़ी को स्वचालित करने के लिए स्क्रिप्ट लिखते हैं, और इस परीक्षण डेटा पर यूनिट परीक्षणों का एक नाव लोड चलाते हैं। एक महत्वपूर्ण बात यह है कि आप ऐसा करने के लिए ट्रैक खोना नहीं है, यह है कि आप भी अपने यूनिट परीक्षण जनरेटर के लिए इकाई परीक्षण लिखने की जरूरत है।
नीचे पंक्ति: इकाई परीक्षण, निश्चित रूप से हाँ। लेकिन बुनियादी कार्यक्षमता पर अपने आप को छोड़ दें - जब तक कि आपको वास्तव में डिबगिंग के लिए उनकी आवश्यकता न हो, या यह सुनिश्चित करना कि कुछ बालों की कार्यक्षमता ठीक से काम करती है (बाद वाले मामले में, स्वयं परीक्षण)।