2009-01-02 6 views
8

मैं टीडीडी और थोड़ा डीडीडी की ओर बढ़ने के लिए घर पर विकास करते समय अपनी मानसिकता को धक्का देने की कोशिश कर रहा हूं।फर्जी भंडारों का परीक्षण करने का क्या मतलब है?

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

तो क्या कोई मेरे मूर्ख मस्तिष्क को भर सकता है कि क्यों कुछ नकली भंडारों का परीक्षण करना पसंद करते हैं? मैंने सोचा होगा कि असली डेटाबेस के खिलाफ परीक्षण नकली बनाने के लिए एक बेहतर विकल्प है क्योंकि तब आप जानते हैं कि यह आपके असली विश्व डेटा स्टोर के खिलाफ काम करता है।

+0

मुझे कोई कारण नहीं दिखता है, डेटाबेस डेटाबेस स्थापित करने और विकास के लिए इसका उपयोग करना आसान है। –

+0

आप नकली भंडारों का परीक्षण करने और _against_ नकली भंडारों का परीक्षण करने के बारे में दोनों से पूछते हैं। मुझे लगता है कि आप _against_ का मतलब है, लेकिन क्या आप इस सवाल को स्पष्ट कर सकते हैं ताकि लोग अधिक केंद्रित उत्तर प्रदान कर सकें? –

उत्तर

21

नकली भंडार आपको केवल अपने आवेदन कोड का परीक्षण करने की अनुमति देता है।

नकली भंडार का अर्थ है कि एक स्वचालित परीक्षण आसानी से भंडार में एक ज्ञात स्थिति स्थापित कर सकता है।

नकली भंडार वास्तविक डेटाबेस की तुलना में तीव्रता के कई आदेश होंगे।

फर्जी रिपोजिटरी सिस्टम परीक्षण के लिए एक विकल्प नहीं है जिसमें आपका डेटाबेस शामिल होगा।

+0

तो परीक्षा उत्तीर्ण करने के लिए वस्तुओं को जोड़ने और अपडेट करने के लिए नकली भंडार बनाना व्यर्थ है? इसका उपयोग केवल आपके एप्लिकेशन कोड का परीक्षण करने के लिए किया जाना चाहिए? यदि यह सही है तो मैं इसे स्वीकृत उत्तर के साथ अपडेट कर दूंगा। –

7

मैं इसे देखना के रूप में वहाँ दो वास्तव में बड़ी कारणों से आप नाटक संसाधनों के खिलाफ परीक्षण कर रहे हैं:

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

    • कैसे आप यकीन है कि यह वास्तव में काम करता है हो सकता है:

    केवल दोष यह स्पष्ट है?

... और यही एकीकरण परीक्षण के लिए हैं।

2

मैं जिराफ के जवाब upvoted, लेकिन अंकों की सिर्फ एक जोड़े को जोड़ना चाहते हैं: परीक्षण में हस्तक्षेप किए बिना

  • प्रत्येक डेवलपर उसे/अपने ही इकाई के परीक्षण के लिए एक नकली/नकली भंडार का उपयोग कर सकते एक ही प्रोजेक्ट पर अन्य डेवलपर्स द्वारा किया जा रहा है।

  • एक स्थानीय नकली/नकली भंडार का उपयोग करते हुए एक डेटा अमूर्त परत है, जो अच्छा डिजाइन अभ्यास है के उपयोगकर्ता पुष्ट।

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

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