निश्चित रूप से। कुछ लोग कहते हैं कि "कोई भी परीक्षा किसी भी परीक्षा से बेहतर है"। मैं दृढ़ता से असहमत हूं - बुरी तरह से लिखे गए परीक्षण आपके विकास के समय को कम करते हैं, और आप "टूटी" परीक्षणों को ठीक करने वाले दिनों को बर्बाद कर देते हैं क्योंकि वे पहले स्थान पर अच्छी इकाई परीक्षण नहीं थे। फिलहाल मेरे लिए, जिन दो चीजों पर मैं ध्यान दे रहा हूं, वे बोझ के बजाय मेरे परीक्षणों को मूल्यवान बनाने के लिए हैं:
रख-रखाव
आपको परिणाम ( क्या होता है) का परीक्षण करना चाहिए , विधि का नहीं ( यह कैसे होता है)। परीक्षण के लिए आपका सेट-अप जितना संभव हो उतना कार्यान्वयन से विघटित होना चाहिए: केवल सेवा कॉल आदि के लिए परिणाम सेट करें जो बिल्कुल आवश्यक हैं।
- यह सुनिश्चित करने के लिए कि आपके परीक्षण किसी बाहरी चीज़ पर निर्भर नहीं हैं, एक मॉकिंग फ्रेमवर्क का उपयोग करें
- जहां भी संभव हो, मोक्स पर अनुकूल स्टब्स (यदि आपकी रूपरेखा उनके बीच अंतर करती है)
- परीक्षणों में कोई तर्क नहीं! अगर, स्विच, प्रत्येक के लिए, मामले, कोशिश-कैच आदि सभी बड़े नो-नोस हैं, क्योंकि वे बग को टेस्ट कोड में ही प्रस्तुत कर सकते हैं
पठनीयता
अपने परीक्षणों में थोड़ा और पुनरावृत्ति की अनुमति देना ठीक है, जिसे आप सामान्य रूप से अपने उत्पादन कोड में अनुमति नहीं देंगे, अगर यह उन्हें अधिक पठनीय बनाता है। बस इसे ऊपर बनाए रखने वाले सामान के साथ संतुलित करें। परीक्षण क्या कर रहा है में स्पष्ट हो!
- अपने परीक्षणों के लिए "व्यवस्था, कार्य, मुखर" शैली बनाए रखने की कोशिश करें। यह आपके सेट अप और परिदृश्य की अपेक्षाओं को अलग करता है, प्रदर्शन की जा रही कार्रवाई से, और परिणाम मुखर हो रहा है।
- प्रति परीक्षण एक तार्किक अभिक्रिया बनाए रखें (यदि आपके परीक्षण का नाम "और" इसमें है, तो आपको इसे कई परीक्षणों में तोड़ना पड़ सकता है)
अंत में, आपको "बदबूदार" परीक्षणों से बहुत चिंतित होना चाहिए - वे आपके समय की बर्बादी को समाप्त कर सकते हैं, कोई मूल्य नहीं प्रदान करते हैं।
आपने कहा है:
यूनिट परीक्षण के लिए आमतौर पर विभिन्न "बदबूदार हैक्स" की आवश्यकता होती है जैसे कि स्टबिंग फ़ंक्शन।
लगता है कि आप निश्चित रूप से कुछ यूनिट टेस्टिंग तकनीकों को पढ़ने के साथ कर सकते हैं, जैसे कि मॉकिंग फ्रेमवर्क का उपयोग करना, अपने जीवन को बहुत आसान बनाने के लिए। मैं बहुत दृढ़ता से यूनिट परीक्षण की कला की सिफारिश करता हूं , जो ऊपर और बहुत कुछ कवर करता है। मैंने लंबे समय तक खराब-लिखित, अचूक, "बदबूदार" परीक्षणों के साथ संघर्ष करने के बाद इसे प्रबुद्ध पाया। यह इस साल मैंने किए गए सबसे अच्छे निवेशों में से एक है!