2009-01-04 10 views
7

मैं सोच रहा था कि अगर किसी को यहां यूनिट परीक्षण LOB अनुप्रयोगों (आमतौर पर सीआरयूडी) में अनुभव है।परीक्षण लाइन ऑफ बिजनेस (LOB) .NET अनुप्रयोग?

मैंने विजुअल स्टूडियो में अंतर्निहित यूनिट परीक्षण उपकरण में डब किया है, लेकिन मुझे डेटाबेस चलाने वाले परीक्षण चलाने में मुश्किल हुई है। चूंकि डेटा बदलता है, और इस तथ्य के साथ संयुक्त है कि मुझे पता नहीं है कि मैं क्या कर रहा हूं, ऐसा लगता है कि अपेक्षित परिणाम उत्पन्न करना और उनके खिलाफ जोर देना मुश्किल लगता है। इसके अलावा मैंने यह भी सुना है कि आपको डेटाबेस के खिलाफ यूनिट परीक्षण नहीं चलाया जाना चाहिए ... लेकिन सीआरयूडी LOB सॉफ़्टवेयर पर यूनिट परीक्षण करने वाले सभी लोग कैसे करते हैं?

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

किसी भी अंतर्दृष्टि की सराहना की जाएगी!

उत्तर

1

आमतौर पर सीआरयूडी के साथ आपको या तो अपने डेटा एक्सेस लेयर के लिए नकली या आईओसी कंटेनर का उपयोग करने की आवश्यकता होगी ताकि आप हमेशा डेटाबेस और "परिवर्तनीय डेटा" को मार नहीं रहे हों।

यूनिट परीक्षणों के साथ, आप हमेशा एक ही मूल्य की अपेक्षा करते हैं, इसलिए इसे डेटाबेस में लगाकर आम तौर पर समस्याएं पैदा होती हैं।

राइनोमोक्स या नियंत्रण कंटेनरों में उलटा देखें।

+0

moq भी ठंडा है, http://code.google.com/p/moq/ – Chance

1

मैं बेसलाइन डेटाबेस बनाता हूं और इसे XML फ़ाइलों के सेट पर निर्यात करने के लिए dbUnit का उपयोग करता हूं। परीक्षण का पहला पास मिटा दिया गया है और बेसलाइन के साथ परीक्षण डेटाबेस पॉप्युलेट कर दिया गया है। उसके बाद, आप अपेक्षित मूल्यों के खिलाफ यूनिट परीक्षणों पर जोर देने में सक्षम होना चाहिए।

1

स्वचालित परीक्षण एक विस्तृत श्रेणी है, जिसमें दो छोटी श्रेणियां हैं: यूनिट परीक्षण और एकीकरण परीक्षण।

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

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

इसके अलावा, स्वचालित एकीकरण परीक्षण के उद्देश्य के लिए पूरी तरह से एक अलग डेटाबेस बनाएं।किसी उत्पादन या विकास डेटाबेस पर स्वचालित एकीकरण परीक्षण चलाने से बचने का प्रयास करें, क्योंकि आप केवल समस्याओं में भाग लेंगे।

+0

बहुत अच्छा पढ़ा, धन्यवाद! –

0

मैं एक ही समस्या पर ठोकर खाई, तो आप उस सारे विकल्प ... हर परीक्षण (NUnit या MbUnit रोलबैक विशेषता के लिए xtUnit का प्रयोग करके) के बाद

  • रोलबैक नहीं है। यह सीआरयूडी संचालन के विशिष्ट इकाई परीक्षणों के लिए ठीक काम करता है।
  • परीक्षण के बाद पहले बैकअप पुनर्स्थापना रणनीति का उपयोग करें। इससे यूनिट टेस्ट निष्पादन लंबा हो जाएगा। हालांकि यह एमबीयूनीट द्वारा समर्थित है (2.X गुण 3.x ट्रंक में मौजूद नहीं हैं)
  • एसक्यूएल स्क्रिप्ट का उपयोग करके डीबी बनाएं/छोड़ें।

पिछले 2 विकल्पों के साथ सबसे बड़ा लाभ यह है कि आप तथाकथित एकीकरण परीक्षण निष्पादित करते समय उनका उपयोग कर सकते हैं (जैसे कि यूआई को स्वचालित करते समय आपको किसी अन्य स्तर (भौतिक सर्वर) पर डेटाबेस परिवर्तनों का समर्थन करने की आवश्यकता होती है)।

मैं वेब ऐप के लिए Watin के साथ संयोजन में अंतिम का उपयोग करता हूं। WPF और Win32 के लिए White पर एक नज़र डालें, यह आशाजनक लग रहा है।

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