यह है कि क्या विधि एक सार्वजनिक एपीआई या नहीं का हिस्सा है पर निर्भर करता है। यदि कोई विधि किसी सार्वजनिक एपीआई के हिस्से से संबंधित नहीं है, लेकिन उसे उसी असेंबली के भीतर अन्य प्रकारों से सार्वजनिक रूप से कहा जाता है, तो आंतरिक का उपयोग करें, अपनी इकाई परीक्षण असेंबली मित्र बनाएं, और यूनिट परीक्षण करें।
हालांकि, यदि विधि सार्वजनिक एपीआई का हिस्सा नहीं होना चाहिए/नहीं, और इसे असेंबली के अन्य प्रकार के आंतरिक रूप से नहीं कहा जाता है, तो इसे सीधे जांच न करें। इसे संरक्षित या निजी होना चाहिए, और इसे केवल आपके सार्वजनिक एपीआई परीक्षण इकाई द्वारा परोक्ष रूप से परीक्षण किया जाना चाहिए। यदि आप अपने प्रकार के सदस्यों के लिए गैर-सार्वजनिक (या गैर-सार्वजनिक क्या होना चाहिए) के लिए यूनिट परीक्षण लिखते हैं, तो आप आंतरिक कार्यान्वयन विवरणों के लिए परीक्षण कोड बाध्य कर रहे हैं।
खराब प्रकार की युग्मन करता है, आपको आवश्यक यूनिट परीक्षणों की मात्रा बढ़ जाती है, अल्पावधि (अधिक यूनिट परीक्षण) में और साथ ही लंबी अवधि में वर्कलोड बढ़ाता है (आंतरिक परीक्षण को पुनः प्रतिक्रिया देने के जवाब में अधिक परीक्षण रखरखाव और संशोधन कार्यान्वयन विवरण)। गैर-सार्वजनिक सदस्यों का परीक्षण करने में एक और समस्या यह है कि आप उस कोड का परीक्षण करते हैं जिसकी वास्तव में आवश्यकता या उपयोग नहीं की जा सकती है। मृत कोड खोजने का एक शानदार तरीका यह है कि जब आपके सार्वजनिक एपीआई को 100% कवर किया जाता है तो यह आपके किसी यूनिट परीक्षण द्वारा कवर नहीं होता है। मृत कोड को हटाने से आपका कोड आधार दुबला और मतलब रखने का एक शानदार तरीका है, और यदि आप अपने सार्वजनिक एपीआई में जो कुछ डालते हैं, उसके बारे में सावधान नहीं हैं, और आपके कोड के कौन से हिस्से आप यूनिट परीक्षण करते हैं तो यह असंभव है।
संपादित करें: एक त्वरित अतिरिक्त टिप्पणी के रूप में ... एक ठीक से डिजाइन सार्वजनिक एपीआई के साथ, आप बहुत प्रभावी ढंग से Microsoft PEX जैसे उपकरण भी स्वचालित रूप से पूर्ण कवरेज इकाई परीक्षण है कि अपने कोड के हर निष्पादन पथ का परीक्षण उत्पन्न करने के लिए कर सकते हैं।कुछ मैन्युअल रूप से लिखित परीक्षा है कि महत्वपूर्ण व्यवहार को कवर के साथ संयुक्त, कवर नहीं कुछ भी मृत कोड माना जा सकता है और हटा दिया है, और आप बहुत अपने इकाई परीक्षण प्रक्रिया शॉर्टकट कर सकते हैं।
तुम मेरी समस्या की जड़ पर चोट का कारण बना है कि - तरीकों आंतरिक अभी भी बहुत उजागर कर रही है बहुत कुछ, क्योंकि इन तरीकों से विधानसभा में अन्य वर्गों को कॉल नहीं किया जाना चाहिए। मैं इस तथ्य पर आपके विचारों से बहुत सहमत हूं कि गैर-सार्वजनिक तरीकों का परीक्षण करना परीक्षण प्रक्रिया को बहुत कसकर कार्यान्वित करने के लिए बाध्य करता है। – Eric
@Eric: फिर आप दस्तावेज और लागू करते हैं कि उन तरीकों को नहीं बुलाया जाना चाहिए। VS2010 की नई परत आरेख सुविधा वहाँ मदद मिल सकती है, के रूप में एक कैसे एक परत दूसरे के साथ बातचीत कर सकते हैं पर प्रतिबंध बना सकते हैं - के दौरान बनाता है उन प्रतिबंधों को लागू किया जा सकता है। –
सेवा का आनंद लें। :) मैंने पीईएक्स के बारे में एक अपडेट जोड़ा जो आपको रुचि हो सकती है। – jrista