2012-12-07 31 views
5

मैं अपने कोड को सत्यापित करने के लिए NUnit और परीक्षण डेटाबेस का उपयोग कैसे करूं? मैं सिद्धांत रूप में mocks (moq) का उपयोग करता हूं लेकिन मेरा कोड रखरखाव के आकार में अधिक है और इसे मोड ठीक करें और मेरे पास सभी मोज़े सेट अप करने की आवश्यकता नहीं है।यूनिट परीक्षण और परीक्षण डेटाबेस का उपयोग

क्या मैं सिर्फ एक परीक्षण प्रोजेक्ट तैयार करता हूं, फिर परीक्षणों को लिखता हूं जो वास्तव में मेरे परीक्षण डेटाबेस से कनेक्ट होते हैं और कोड को निष्पादित करते हैं जैसा कि मैं ऐप में चाहता हूं? फिर मैं आवेषण के साथ कोड की जांच करता हूं और सुनिश्चित करता हूं कि मैं जो अनुरोध कर रहा हूं वह वह है जो मैं सही तरीके से वापस प्राप्त कर रहा हूं?

+0

ऐसा लगता है कि आप वास्तव में एकीकरण परीक्षण का मतलब है। यूनिट परीक्षण अलग-अलग होते हैं ताकि निर्भरता के नकली/नकली कार्यान्वयन को एक विधि का परीक्षण किया जा सके, जिसमें उनके पास कोई डेटाबेस कोड नहीं होगा। –

उत्तर

6

मैं अपने कोड को सत्यापित करने के लिए एनयूनीट और टेस्ट डेटाबेस का उपयोग कैसे करूं? मैं सिद्धांत सिद्धांतों में उपयोग करता हूं (moq) लेकिन मेरा कोड रखरखाव आकार में अधिक है और इसे ठीक करें मोड और मेरे पास सभी मोज़े सेट अप करने की आवश्यकता नहीं है।

मैक्स का उपयोग केवल तभी उपयोगी होता है जब आप कक्षा के सटीक कार्यान्वयन व्यवहार का परीक्षण करना चाहते हैं। इसका मतलब है कि आप सचमुच जोर दे रहे हैं कि एक वर्ग किसी अन्य वर्ग पर एक विशिष्ट विधि कहता है। उदाहरण के लिए: मैं उस निंजा को कहना चाहता हूं। अटैक() कॉल तलवार। Unheath()।

मैं सिर्फ एक परीक्षण परियोजना बनाने करो, तो परीक्षण है कि वास्तव में अनुप्रयोग में अपने परीक्षण डेटाबेस से कनेक्ट और के रूप में मैं wwould कोड निष्पादित बारे में? फिर मैं आवेषण के साथ कोड की जांच करता हूं और सुनिश्चित करता हूं कि मैं क्या अनुरोध कर रहा हूं कि मैं सही तरीके से वापस आ रहा हूं?

यह सिर्फ एक सादा पुराना यूनिट परीक्षण है। यदि इसे प्राप्त करने में कोई बाधा नहीं है, तो यह एक अच्छा संकेतक है कि यह परीक्षण का सबसे प्रभावी तरीका होगा। यह व्यावहारिक और अत्यधिक प्रभावी है।

एक अन्य परीक्षण उपकरण है जिसका आपने उल्लेख नहीं किया है, जिसे स्टब कहा जाता है। मैं अत्यधिक तुम अधिक जानकारी के लिए इस क्लासिक लेख को पढ़ने की सलाह देते हैं:

http://martinfowler.com/articles/mocksArentStubs.html

+0

धन्यवाद, परीक्षण डीबी यह मेरे लिए है। तो बस मेरे कोड के साथ डीबी को कॉल करें और परीक्षण करें कि यह सही है। – cdub

+0

यह सच होने के लिए बहुत अच्छा प्रतीत हो सकता है, लेकिन यह काम करता है। विशेष रूप से इस तथ्य पर विचार करना कि आपका आवेदन पहले ही लिखा जा चुका है। लिखने के लिए –

2

जब से हम सैद्धांतिक मामले के बारे में बात नहीं कर रहे है, यह मैं क्या कर सकता है - मेरी समझ से क्या आप परीक्षण करना चाहते है, जो आपके ऐप्लिकेशन है कि क्या सही ढंग से डीबी से कनेक्ट हो रहा है और वांछित डेटा ला रहा है या नहीं।

  1. एक ही स्कीमा के साथ एक परीक्षण डीबी बनाएं
  2. कोड से डीबी से कनेक्शन है कि
  3. ओपन में कुछ डमी डेटा जोड़ें, परीक्षण करने के लिए आप क्या से मिला
  4. लिखें दावे वांछित डेटा का अनुरोध आपके द्वारा अपेक्षित

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

(दान का उत्तर ^^ मैं जो कहना चाहता हूं वह बहुत अधिक रकम)

+1

हाँ +1 – cdub