2008-12-25 13 views
10

मैंने पहले कभी यूनिट परीक्षण नहीं किया है, लेकिन अब मैं इसे आज़माने के लिए तैयार हूं।कौन सा यूनिट परीक्षण ढांचा और कैसे शुरू किया जाए (एएसपीएनटी एमवीसी के लिए)

स्टार्टर्स के लिए कौन सा ढांचा सबसे अच्छा है? पेशेवर और विपक्ष

कोई कोडिंग शुरू करने से पहले मुझे क्या पढ़ना चाहिए? पुस्तकें/लेख/कोड/ब्लॉग

क्या कोई ओपनसोर्स "नमूना परियोजनाएं" है?

मैं इसे एएसपीनेट एमवीसी/सी # के साथ उपयोग कर दूंगा।

उत्तर

7

यदि आपने विजुअल स्टूडियो में यूनिट परीक्षण एकीकृत किया है (मुझे लगता है कि यह पेशेवर और बेहतर का हिस्सा है), इसके साथ शुरू करें, क्योंकि यह एकीकृत है। नकारात्मकता यह है कि मेरे ज्ञान के लिए, विजुअल स्टूडियो या टीम फाउंडेशन सर्वर के बाहर कोई परीक्षण धावक नहीं है जो स्वचालित परीक्षण के लिए इसे अयोग्य घोषित करता है, लेकिन मुझे यकीन नहीं है कि वह जानकारी कितनी वर्तमान है।

अन्य विकल्प xUnit.net, NUnit और mbUnit हैं। मैं अनुभव की कमी के कारण वास्तव में पेशेवरों/विपक्ष के बारे में बात नहीं कर सकता, लेकिन अब मैं xUnit.net का उपयोग करता हूं क्योंकि ए) मुझे पता है कि संस्करण 1.1 के बाद से एक एएसपीनेट एमवीसी टेम्पलेट काम कर रहा है और बी) Assert.Throws बस है कामुक। मैं विजुअल स्टूडियो के भीतर अपने टेस्ट रनर के रूप में TestDriven.net के नि: शुल्क व्यक्तिगत संस्करण का उपयोग करता हूं। http://www.codeplex.com/xunit/Wiki/View.aspx?title=HowToUse

फिर से, मैं वास्तव में उन्हें NUnit और mbUnit के साथ अनुभव की कमी के कारण तुलना नहीं कर सकते, लेकिन मुझे विश्वास है कि सभी तीन काफी स्थिर हैं:

वहाँ एक "कैसे आरंभ करने के लिए" XUnit के लिए गाइड है और प्रयोग योग्य

+0

सीआई सर्वर और अन्य तृतीय पक्ष औजारों के साथ बॉक्स के एकीकरण की कमी के कारण दृश्य स्टूडियो यूनिट परीक्षण ढांचे को छोड़कर मैं कुछ भी शुरू करूंगा, – Paco

+0

यदि आप प्रारंभ करना चाहते हैं, तो सीआई सबसे अच्छी बात नहीं हो सकती करने के लिए। अब मैं विशेष रूप से xUnit का उपयोग करता हूं, लेकिन सीखने की वक्र काफी खड़ी थी। –

+0

मैं दूसरा पको का मुद्दा - मैंने एमएसटीईटी का इस्तेमाल किया लेकिन परिणामों को देखा है। इसके अलावा, मैं रॉय ओशरोव की पोस्ट द्वारा xUnit.net पर एक खराब दिशा में प्रभावित था। आपको NUnit और MSTEST पर xUnit.net का उपयोग करके खेद नहीं होगा - जबकि प्रारंभिक घर्षण कम है, आपके परीक्षणों और सोच की गुणवत्ता हुकुम में भुगतान करेगी। मैं अपना -1 हटा दूंगा जब इस पोस्ट में पहले पैरा के अंत में एक परिशिष्ट है जो दर्शाता है कि यह सार्वभौमिक रूप से नहीं देखा गया है –

3

मैं राइट-क्लिक मेनू आइटम के लिए TestDriven.Net के अतिरिक्त विजुअल स्टूडियो में बेक्ड एक का उपयोग करता हूं जो मुझे डीबगर के साथ/बिना एकल परीक्षण चलाने की अनुमति देता है। मैंने न्यूटिट का उपयोग शुरू किया। कोई भी शायद ठीक है। मैं मुख्य रूप से वीएस में एक का उपयोग करना पसंद करता हूं इसलिए मुझे दोनों टूल्स का समर्थन नहीं करना है, लेकिन एकीकरण के कुछ फायदे हैं, खासकर यदि आप टीम सिस्टम का उपयोग करते हैं।

मुझे विश्वास है कि TestDriven.Net कई अलग-अलग ढांचे का समर्थन करता है। आप यह देखने में सहायता के लिए एक कवरेज विश्लेषक का भी उपयोग करना चाहेंगे कि आपके कोड के कौन से हिस्सों को परीक्षणों से कवर किया गया है और आपको आवश्यक अन्य परीक्षणों को निर्धारित करने में मदद मिलती है। वीएस के लिए कवरेज विश्लेषण में पके जाने के लिए आपको टीम सिस्टम की आवश्यकता हो सकती है, लेकिन हमेशा एनसीओवर होता है (TestDriven.Net के साथ आता है)।

मैं Pragmatic Programmers या Test Driven Development with C# से Pragmatic Unit Testing in C# को देखने का सुझाव दूंगा। दोनों के उदाहरण होंगे।

रोब कॉनरी का StoreFront उदाहरण एएसपी.नेट एमवीसी का एक अच्छा उदाहरण है।

3

रोब कॉनरी ने serie of videos बनाया है जो दिखाता है कि एमवीसी का उपयोग कर ई-कॉमर्स ऐप कैसे बनाया जाए।उन्होंने कहा कि एक पूरा testdriven दृष्टिकोण का उपयोग कर रहा है (का उपयोग कर विजुअल स्टूडियो 2008 में निर्मित परीक्षण ढांचा)

2

केवल एक चीज मैं जोड़ना होगा क) उन सब को आजमाइए और देखो तुम क्या पसंद [है कि एक है है बकवास का जवाब है, लेकिन हर किसी के पास अपनी पसंद और नापसंद है ताकि 'इसे आज़माएं' कार्ड बहुत खेला जाता है] और आप किस घर्षण बिंदु का सामना करते हैं और बी) XUnit CodePlex साइट पर nice comparison of the primary unit test frameworks देखें।

0

चलिए इस बारे में कुछ मूल बातें शुरू करते हैं, ठीक है? यूनिट परीक्षण कोड के सबसे छोटे टुकड़े, आमतौर पर कोड के भीतर एक समारोह/प्रक्रिया/विधि पर परीक्षण करने के लिए संदर्भित करता है। मैं मार्टिन फाउलर द्वारा "रिफैक्टरिंग" को एक अच्छी किताब के रूप में देखने का सुझाव दूंगा कि कैसे यूनिट परीक्षण रिफैक्टरिंग में भूमिका निभाते हैं।

इस पर निर्भर करते हुए कि आप अपना कोड कैसे सेट अप करते हैं, आप उदाहरण के लिए राइनोमोक्स, एनएमक्स, नेट मैक ऑब्जेक्ट्स जैसे मॉकिंग फ्रेमवर्क देखना चाहते हैं ताकि आप प्री-निष्पादन स्थितियों को संभालने के लिए टेस्ट फिक्स्चर सेट कर सकें। आवश्यकता होती है। वहाँ कुछ मॉक ऑब्जेक्ट यूनिट परीक्षण उदाहरणों से अधिक संभावना है और asp.net-mvc पर ट्यूटोरियल में एक परीक्षण उदाहरण या दो होना चाहिए।

यह मत भूलना कि एएसपीनेट-एमवीसी अभी भी बीटा में है और कुछ और बदलाव करने की संभावना है क्योंकि विभिन्न किंक इस पर काम कर रहे हैं।

3

मैं आपको Gallio Automation Platform for .NET पर देखने की सलाह देता हूं क्योंकि यह एक तटस्थ (और मुफ़्त) टूल प्रदान करता है जो एक जीयूआई उपकरण के तहत आपके लिए एकाधिक यूनिट परीक्षण ढांचे को लागू कर सकता है। यह mbUnit के पीछे लोगों द्वारा बनाया गया है।

किसी भी इकाई परीक्षण ढांचे के लिए मेरा मुख्य समर्थक यह है कि यह आपको अपने कोड में आत्मविश्वास का एक बड़ा ज्ञान देता है, और टीडीडी का अभ्यास करना एक बहुत ही स्वाभाविक चीज बन जाता है।

मुख्य बात यह है कि एएसपी.नेट वेबफॉर्म (जो मैं कोड में करता हूं) आसानी से यूनिट परीक्षण नहीं किया जाता है, यही कारण है कि एएसपी.नेट एमवीसी लोगों के लिए इतना आकर्षक है। एक और बात यह है कि आपको यह महसूस करने की आवश्यकता है कि आपको जितना अधिक कोड नहीं होगा, उतना ही परीक्षण करने के लिए आपको परीक्षणों को दोबारा करने की आवश्यकता होगी।

0

मैं Selenium RC और Moq का उपयोग कर रहा हूं। अब तक मैंने बहुत से क्षेत्रों में भाग नहीं लिया है कि मैं परीक्षण करने और अच्छे कवरेज प्राप्त करने में सक्षम नहीं हूं।

Selenium RC sample code पर एक नज़र डालें। यह बहुत सीधी-आगे और अनुसरण करने में आसान है ...

1

मैं आपको भ्रमित करने की कोशिश नहीं कर रहा हूं, अगर आप डेवलपर हैं और एएसपी.नेट एमवीसी परियोजनाओं का परीक्षण करना चाहते हैं तो XUnit का उपयोग करें, यह माइक्रोसॉफ्ट के कर्मचारी द्वारा अच्छा और विकसित है । इसमें कंसोल & गुई धावक हैं जो स्वचालित परीक्षण में सहायता करता है। XUnit अब अधिकांश डेवलपर्स द्वारा उपयोग किया जाता है।

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