2009-02-24 30 views
10

पर नया मैं विजुअल स्टूडियो 2008 (.net 2.0) का उपयोग कर मौजूदा (काफी बड़े) एप्लिकेशन में यूनिट परीक्षण को कार्यान्वित करने के बारे में जानना चाहता हूं।यूनिट परीक्षण

मैं समझता हूं कि मौजूदा/विरासत कोड के लिए विकासशील इकाई परीक्षण यथार्थवादी नहीं है लेकिन मैं कोड आगे बढ़ने के लिए परीक्षण करना चाहता हूं।

मुझे कोड के लिए परीक्षण लिखने के बारे में बहुत सारे उदाहरण मिल गए हैं, लेकिन किसी मौजूदा प्रोजेक्ट पर स्क्रैच से इसे कैसे सेट अप करें और इसे विकास चक्र में कैसे एकीकृत किया जाए, इसके बारे में कुछ भी नहीं मिला है।

उत्तर

5

सरल दृष्टिकोण:

  • इकाई परीक्षण चौखटे में से एक उठाओ (Nunit, MbUnit, XUnit, वी.एस. इकाई परीक्षण ढांचे, ...) इकाई परीक्षण के लिए
  • जोड़ें परियोजना अपने समाधान में (उदाहरण के लिए UnitTests)।
  • परीक्षण लिखना शुरू करें।

आसान संगठन के लिए, समाधान में प्रत्येक परियोजना के लिए कम से कम एक नाम स्थान बनाना, उदाहरण UnitTest.Project1, UnitTests.Project2 के लिए ... परियोजनाओं के आकार के आधार पर नाम स्थान के लिए अधिक स्तर जोड़ने।

इस तरह परीक्षण परियोजना समाधान का हिस्सा है। यदि आप कुछ निरंतर एकीकरण उपकरण का उपयोग करते हैं, तो प्रत्येक कोड पर स्रोत कोड भंडार में परीक्षण स्वचालित रूप से निष्पादित किए जा सकते हैं।

संपादित करें: "Create unit test" wizard does not work:
इकाई परीक्षण बनाने के साथ एमएस यूनिट टेस्ट फ्रेमवर्क समस्या पर टिप्पणी के बारे में, वहाँ समस्या पता है। ऐसा लगता है कि असमर्थित प्रकार की परियोजनाएं हैं जो इकाई परीक्षण विज़ार्ड को सही तरीके से काम करने से रोकती हैं। मैंने बस एक समाधान के साथ प्रयास किया जिसमें एक एफ # और कई सी # परियोजनाएं हैं। मैंने इकाई परीक्षण परियोजना को जोड़ा और परीक्षण जोड़ने की कोशिश की। जब तक मैंने एफ # प्रोजेक्ट को अनलोड नहीं किया तब तक टेस्ट विज़ार्ड में समस्याएं थीं। तब सब कुछ ठीक काम किया।

+0

यह एक बेवकूफ सवाल हो सकता है लेकिन मैंने सोचा कि इकाई परीक्षण वीएस 2008 आईडीई में "बेक्ड" था, तो आपको इकाई परीक्षण ढांचे के लिए क्या चाहिए? – CodeKiwi

+0

आप सही हैं। मैं उस बारे में भूल गया क्योंकि मैं न्यूटिट का उपयोग कर रहा हूं क्योंकि 4 साल पहले जब मैंने यूनिट परीक्षण शुरू किया था तो यह सबसे अच्छा था। – zendar

+0

मैंने क्लास पर राइट क्लिक करते समय "यूनिट टेस्ट" संदर्भ विकल्प का उपयोग कर यूनिट परीक्षणों को जोड़ने का प्रयास किया है, लेकिन हमेशा एक त्रुटि के साथ सामना किया जाता है (इस समय इसे याद नहीं कर सकता) हालांकि मुझे संदेह है कि यह दृश्य स्रोत सुरक्षित हस्तक्षेप से संबंधित है । – CodeKiwi

1

मैं इस पुस्तक को पढ़ने की अत्यधिक अनुशंसा करता हूं: Working Effectively with Legacy Code यदि आप मौजूदा कोड के लिए यूनिट परीक्षण करना चाहते हैं। यह सामान्य रूप से यूनिट परीक्षणों के लिए सर्वोत्तम प्रथाओं पर भी एक अच्छी किताब है।

मौजूदा परियोजनाओं पर यूनिट परीक्षण करना संभव है, लेकिन कोड को टेस्ट करने योग्य बनाने के लिए आपको यहां कुछ समायोजन करना होगा। बहुत अधिक निर्भरता अक्सर समस्या है।

संपादित करें (आपकी टिप्पणी के बाद) यदि आप वास्तव में अपने विकास चक्र में इकाई परीक्षण एम्बेड करना चाहते हैं तो आपको टीडीडी (Test Driven Development) के लिए जाना चाहिए। यहां का उद्देश्य अपने यूनिट परीक्षणों को पहले लिखना है, इसलिए आपको अपनी कक्षाओं के बारे में अच्छी समझ है। बेशक ये परीक्षण विफल हो जाएंगे, लेकिन लक्ष्य उन्हें एक-एक करके काम करना है। टीडीडी पर एक गूगल करो, वहां बहुत सारी जानकारी है।

+0

हाँ मैं अपने एक छोटे से व्यर्थ इस स्तर पर यह लागू करने पता है, लेकिन हम एक के रूप में फिर से शुरू करने का अवसर मिल रहा है ग्रीनफील्ड प्रोजेक्ट .. वास्तुशिल्प परिवर्तनों के कारण, मैं शुरुआत से यूनिट परीक्षण को कार्यान्वित करना चाहता हूं और सोचा कि आईडी अब एक सिर शुरू हो गया है .. (इसलिए सवाल) – CodeKiwi

+0

हुह? मैं समझ नहीं पा रहा हूं – CodeKiwi

+0

गेरी, हां टीडीडी कुछ ऐसा है जो हम इस समय जांच कर रहे हैं, जिस कारण से मैं अभ्यास में कुछ यूनिट परीक्षण करना चाहता हूं, – CodeKiwi

3

मौजूदा कोड के साथ परीक्षण करने का एक आसान तरीका है जब एक बग पाया जाता है तो परीक्षण लिखने की नीति होती है।

i।ई

  • ढूँढें बग
  • लिखें परीक्षण है जो बग recplicates
  • फिक्स
+0

बस ब्याज से बाहर, मानते हैं कि आपके पास एक ही उद्देश्य विधि है (या एकल उद्देश्य के करीब) आपके पास आमतौर पर कितने परीक्षण होते हैं (बॉल पार्क), – CodeKiwi

+0

पैरामीटर के कुछ "औसत" या "मानक" सेट के लिए एक परीक्षण करें और सभी ज्ञात सीमा स्थितियों (शून्य पैरामीटर, अधिकतम/न्यूनतम मान, ...) के लिए परीक्षण करना सुनिश्चित करें। – zendar

+0

+1 और किसी भी नए कोड के लिए परीक्षण लिखें, न केवल बग के लिए। समय में यह जोड़ता है। –

संबंधित मुद्दे