क्या मुझे यूनिट टेस्ट और इंटीग्रेशन टेस्ट अलग-अलग करने चाहिए?


17

मुझे एक परियोजना के लिए इकाई परीक्षण और एकीकरण परीक्षण लिखना होगा।

  • क्या सभी परीक्षणों को एकल परीक्षण फ़ोल्डर में रखा जाना चाहिए ?
  • या इकाई परीक्षण और एकीकरण परीक्षण प्रत्येक को एक अलग परीक्षण फ़ोल्डर में होना चाहिए ?
  • या मैं भी उन्हें अलग परियोजनाओं में डाल देना चाहिए ?

यदि मैं उन्हें एक साथ रखता हूं, तो क्या इस दृष्टिकोण के साथ कोई लाभ या कमियां हैं?


1
यदि आप एक सीआई वातावरण में काम कर रहे हैं, तो महत्वपूर्ण बात यह है कि उन्हें आसानी से पहचाना जा सकता है (विशेषता आदि द्वारा) क्योंकि एकीकरण परीक्षण हमेशा बिल्ड सर्वर पर नहीं चलते हैं।
रॉबी डे

जवाबों:


18

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

  • डेटाबेस प्रश्न
  • नेटवर्क अनुरोध
  • समय पर निर्भर व्यवहार
  • बड़ी मात्रा में डेटा

इसके विपरीत, एक इकाई परीक्षण किसी भी महंगे संचालन का मजाक उड़ाएगा, इसलिए इकाई परीक्षण जल्दी से चलते हैं (वास्तव में, परीक्षण चलाने का सबसे धीमा हिस्सा अक्सर परीक्षण रूपरेखा ही होता है)।

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

इसका मतलब है कि बड़े परीक्षण सूट को वर्गीकृत किया जाना चाहिए। क्या हम केवल एक विशेष घटक के लिए इकाई परीक्षणों का चयन कर सकते हैं? क्या हम धीमे परीक्षणों को बाहर कर सकते हैं? ऐसा करने का एक सरल तरीका विभिन्न निर्देशिकाओं में अलग-अलग परीक्षण सूट बनाए रखना है। यदि आपके पास केवल बहुत कम परीक्षण हैं, तो एक एकल निर्देशिका भी ठीक होगी क्योंकि एक प्रोग्रामर आसानी से परीक्षणों का सबसेट चुन सकता है।

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

आगे की पढाई:


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

@ihebiheb जावा में, पैकेज विजिबिलिटी का उपयोग करने पर यह काफी प्रभावित होता है। कुछ मामलों में इसका उपयोग करना और यूनिट परीक्षणों से इन एपीआई को एक्सेस करने में मदद मिल सकती है। लेकिन सामान्य तौर पर, यह अनावश्यक है। एकीकरण-शैली परीक्षणों को पैकेज-निजी सदस्यों तक पहुंच की आवश्यकता नहीं है। मावेन परियोजना को परीक्षणों को अलग करना या न करना इस बात पर निर्भर करता है कि आप उन्हें कैसे चलाना और तैनात करना चाहते हैं। मैं जावा / मावेन में नहीं हूँ जो आपको बता सके कि यहाँ क्या समझदार है।
आमोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.