तुम क्या करने कोशिश कर रहे हैं इकाई परीक्षण
आप परीक्षण किया जाए या नहीं लौटे वस्तुओं विशिष्ट ठोस वर्ग के उदाहरण हैं, तो आप इकाई परीक्षण नहीं कर रहे हैं नहीं है। आप एकीकरण परीक्षण कर रहे हैं। जबकि एकीकरण परीक्षण महत्वपूर्ण है, यह वही बात नहीं है।
यूनिट परीक्षण में, आपको केवल ऑब्जेक्ट का परीक्षण करने की आवश्यकता है। यदि आप लौटे अमूर्त वस्तुओं के ठोस प्रकार पर जोर देते हैं, तो आप लौटे ऑब्जेक्ट के कार्यान्वयन पर परीक्षण कर रहे हैं। में वस्तुओं पर
यूनिट परीक्षण सामान्य
इकाई परीक्षण, चार बातें कर रहे हैं, तो आपको यह स्पष्ट करना चाहते हैं: खोजों की
- वापसी मान (गैर शून्य विधि) कर रहे हैं कि आप उन्हें क्या करने की उम्मीद हो।
- आदेशों के दुष्प्रभाव (शून्य विधियों) ऑब्जेक्ट को स्वयं संशोधित करते हैं जैसा कि आप उन्हें उम्मीद करते हैं।
- अन्य वस्तुओं को भेजने के लिए आदेश प्राप्त होते हैं (यह आम तौर पर मोजे का उपयोग करके किया जाता है)।
इसके अलावा, आप केवल एक ऑब्जेक्ट उदाहरण, यानी सार्वजनिक इंटरफ़ेस से क्या देखा जा सकता है इसका परीक्षण करना चाहते हैं। अन्यथा, आप अपने आप को कार्यान्वयन विवरण के एक विशिष्ट सेट से बांधते हैं। जब आप विवरण बदलते हैं तो आपको अपने परीक्षणों को बदलने की आवश्यकता होगी।
यूनिट टेस्टिंग कारखानों कारखानों पर
इकाई परीक्षण वास्तव में नीरस है, क्योंकि आप प्रश्नों की लौटे वस्तुओं के व्यवहार में कोई दिलचस्पी नहीं कर रहे हैं। वह व्यवहार (आशा है कि) कहीं भी परीक्षण किया गया है, अनुमानित है कि यूनिट परीक्षण जो स्वयं ऑब्जेक्ट करता है। आप केवल वास्तव में रुचि रखते हैं कि लौटे ऑब्जेक्ट में सही टाइप टाइप करें, जो आपके प्रोग्राम को संकलित करते समय गारंटीकृत है।
कारखाने समय के साथ नहीं बदलते हैं (क्योंकि तब वे "बिल्डर्स" होंगे, जो एक और पैटर्न है), परीक्षण करने के लिए कोई आदेश नहीं है।
कारखाने वस्तुओं को तत्काल करने के लिए जिम्मेदार हैं, इसलिए उन्हें अन्य कारखानों पर उनके लिए ऐसा करने पर निर्भर नहीं होना चाहिए। वे एक बिल्डर पर निर्भर हो सकते हैं, लेकिन फिर भी, हमें बिल्डर की शुद्धता का परीक्षण नहीं करना चाहिए, केवल बिल्डर को संदेश प्राप्त होता है या नहीं।
इसका मतलब है कि आपको कारखानों पर परीक्षण करना है या नहीं, वे उन वस्तुओं को संदेश भेजते हैं जिन पर वे निर्भर करते हैं। यदि आप निर्भरता इंजेक्शन का उपयोग करते हैं, तो यह लगभग मामूली है। बस अपने यूनिट परीक्षणों में निर्भरता का नकल करें, और सत्यापित करें कि वे संदेश प्राप्त करते हैं। यूनिट टेस्टिंग फैक्ट्रीज
सारांश
- व्यवहार है और न ही वापस आ वस्तुओं के कार्यान्वयन विवरण का परीक्षण नहीं! ऑब्जेक्ट इंस्टेंस के कार्यान्वयन के लिए आपकी फैक्ट्री ज़िम्मेदार नहीं है!
- परीक्षण करें कि निर्भरता पर भेजे गए आदेश प्राप्त किए गए हैं या नहीं।
यही है। यदि कोई निर्भरता नहीं है, तो परीक्षण करने के लिए कुछ भी नहीं है। शायद यह कहने के लिए कि लौटाया गया ऑब्जेक्ट null
संदर्भ नहीं है।
एकीकरण परीक्षण कारखानों
आप एक आवश्यकता है कि लौटे सार ऑब्जेक्ट प्रकार एक विशिष्ट ठोस प्रकार का एक उदाहरण है, तो इस एकीकरण परीक्षण के अंतर्गत आती है।
अन्य लोगों ने पहले ही उत्तर दिया है कि instanceof
ऑपरेटर का उपयोग करके इसे कैसे किया जाए।
इसे चिह्नित किया गया था 'कारण आपको परीक्षण के बजाय दावा का उपयोग करना चाहिए ... – Nicolas