हमें स्वचालित इकाई परीक्षण क्यों करने की आवश्यकता है? यह कितना प्रभावी है?
स्वचालित इकाई परीक्षण बहुत ही मूल्यवान पहला और सबसे महत्वपूर्ण है क्योंकि यह automatable है (सामान्य रूप से, हम केवल यह विचार करना एक 'इकाई परीक्षण' जब यह automatable है)। चूंकि एप्लिकेशन का आकार बढ़ता है, पूरे एप्लिकेशन को मैन्युअल रूप से परीक्षण करने में घंटों या सप्ताह लग सकते हैं। यहां तक कि किसी एप्लिकेशन के केवल एक छोटे से हिस्से का परीक्षण करने में समय लगता है और त्रुटि-प्रवण होता है। जब तक आप ऑटिस्टिक नहीं होते हैं, तो आप इसे मैन्युअल परीक्षण 100% सही तरीके से करने पर ध्यान केंद्रित नहीं कर पाएंगे यदि आपको इसे कई बार और अधिक बार करना है।
एग्इल विकास में, हम रैपिड फीडबैक की अवधारणा के साथ काम करते हैं: जितनी जल्दी आप सही या गलत थे, उसके बारे में प्रतिक्रिया प्राप्त कर सकते हैं, जितना अधिक प्रभावी हो सकता है।हम सभी गलतियां करते हैं, लेकिन यह कई दिनों या सप्ताह बाद की तुलना में तीस सेकंड बाद गलती को खोजने और ठीक करने के लिए बहुत महंगा है। यही कारण है कि स्वचालित परीक्षण इतना महत्वपूर्ण है।
जबकि आप कई स्तरों पर स्वचालित परीक्षण कर सकते हैं, इकाई परीक्षण लागू करने का सबसे प्रभावी प्रकार है। यह समझने और मास्टर करने के लिए सबसे कठिन परीक्षण अनुशासन हो सकता है, लेकिन यह किसी अन्य प्रकार के परीक्षण की तुलना में कहीं अधिक मजबूत है।
यदि मैं स्वचालित इकाई परीक्षण करना शुरू करना चाहता हूं। मुझे कहां से शुरू करना चाहिए? (नूनिट के बारे में सुना है)
सबसे पहले, आपको कुछ यूनिट परीक्षण मूल बातें सीखनी होंगी। रॉय ओशरोव की पुस्तक The Art of Unit Testing एक अच्छी परिचय है।
जब ढांचे की बात आती है, तो न्यूटिट लंबे समय से आसपास रहा है, लेकिन इसमें कुछ अंतर्निहित मुद्दे हैं।
यदि आपके पास पहले से ही विजुअल स्टूडियो प्रोफेशनल या टीम सिस्टम है, तो एक अंतर्निहित इकाई परीक्षण ढांचा सामान्यतः एमएसटीएस्ट के रूप में जाना जाता है। अधिकांश लोग इस ढांचे को नापसंद करते हैं, लेकिन व्यक्तिगत रूप से, मुझे यह काफी पर्याप्त लगता है। आईडीई एकीकरण अच्छी तरह से काम करता है, लेकिन एपीआई बेहतर हो सकता है।
यदि आप एक मुक्त, मुक्त स्रोत इकाई परीक्षण ढांचे की तलाश में हैं, तो मैं xUnit.net की सिफारिश करूंगा, जो कि एक और अधिक आधुनिक ढांचा है।
क्या स्वचालित इकाई परीक्षण की सुविधा के लिए मेरी कक्षाओं को डिजाइन करते समय मुझे कुछ भी ध्यान में रखना चाहिए?
हां, प्रत्येक वर्ग अलगाव में उपयोग करने में सक्षम होना चाहिए। अप-फ्रंट डिज़ाइन द्वारा करना बहुत मुश्किल हो सकता है, या यदि आप मौजूदा कोड पर यूनिट परीक्षणों को फिर से निकालने का प्रयास कर रहे हैं, लेकिन यदि आप टेस्ट-ड्राइव डेवलपमेंट (टीडीडी) अपनाते हैं तो स्वाभाविक रूप से कम या कम आना चाहिए।
क्या सी # में स्वचालित इकाई परीक्षण के लिए एक अंतर्निहित समर्थन है?
नहीं, सी # सिर्फ एक भाषा है, लेकिन जैसा कि मैंने ऊपर बताया है, विजुअल स्टूडियो के कुछ संस्करणों में एमएसटीएस्ट है।
क्या हम स्वचालित इकाई परीक्षण के साथ जीयूआई का परीक्षण भी कर सकते हैं या यह सिर्फ व्यावसायिक तर्क है?
यूनिट परीक्षण जीयूआई बहुत भंगुर हो जाता है (यानी, परीक्षण रखरखाव बहुत अधिक है), इसलिए आमतौर पर एक अच्छा विचार नहीं है। Modev-व्यू-नियंत्रक, मॉडल-व्यू-प्रस्तुतकर्ता, अनुप्रयोग नियंत्रक, मॉडल-व्यू-ViewModel, आदि
:
हालांकि, कई डिजाइन पैटर्न मदद कर सकते हैं कि आप परीक्षण योग्य वर्गों में सभी जीयूआई तर्क निकालने हैं आप केवल जीयूआई प्रतिपादन भाग को छोड़कर, इस तरह के इंटरफेस के माध्यम से पूरे एप्लिकेशन के स्वचालित परीक्षण कर सकते हैं। इस तरह के परीक्षणों को उपकुंजीय टेस्ट कहा जाता है, लेकिन उन्हें एकीकरण परीक्षण माना जाता है, यूनिट परीक्षण नहीं।
ढांचे के बारे में सुना है। क्या वे इकाई परीक्षण के लिए भी हैं?
गतिशील नकली पुस्तकालय यूनिट परीक्षण के लिए केवल हैं।
कुछ अच्छी और लोकप्रिय वालों
व्यापक उत्तर। – Sandbox
वाह ... यह 2014 है, और यह मेरी खोज में मिली सबसे अच्छी सामग्री है जो मेरे जैसे नौसिखिया की मदद कर सकती है। आप के लिए कुडोस, महोदय। – Malavos
अभी भी एक मजबूत, उपयोगी उत्तर 2017 के रूप में भी (एक भर्ती न्यूब से)। मैं इसे विजुअल स्टूडियो 2015 के रूप में अपडेट करना चाहता था, मूल एमएसटीएस्ट एक्सप्रेस सहित प्रत्येक संस्करण में बनाया गया है। एमएस में एक नया यूआईटीएस्ट फ्रेमवर्क है जो केवल उच्च पैकेजों में शामिल है (मुझे लगता है कि प्रो और एंटरप्राइज़)। – LightCC