आंतरिक कक्षाओं में यूनिट परीक्षण कैसे लिखना है ???आंतरिक कक्षा
उत्तर
आप परीक्षण जो शीर्ष स्तर के वर्ग 'बाहरी इंटरफ़ेस का व्यवहार निर्दिष्ट लिखें। चाहे वह कक्षा उस व्यवहार को लागू करने के लिए आंतरिक कक्षाओं का उपयोग करे या नहीं, कक्षा का कार्यान्वयन विवरण है, और परीक्षणों को इसके बारे में कुछ भी जानने की आवश्यकता नहीं है।
यदि आंतरिक वर्ग को शीर्ष-स्तरीय वर्ग 'इंटरफ़ेस के माध्यम से पर्याप्त रूप से परीक्षण नहीं किया जा सकता है, तो आंतरिक कक्षा को बाहर ले जाने और इसे सीधे शीर्ष स्तर के स्तर के रूप में जांचने के लिए सबसे अच्छा होता है। आंतरिक कक्षाओं का परीक्षण करना चाहते हैं एक कोड गंध है कि आंतरिक वर्ग एक शीर्ष-स्तरीय वर्ग होने के लिए पर्याप्त महत्वपूर्ण हो सकता है।
यूनिट टेस्ट के लिए एमएस विजुअल स्टूडियो का उपयोग करते समय आपको केवल private Accessor बनाना होगा। आंतरिक रूप से यह मुझे लगता है कि प्रतिबिंब के साथ काम करता है। बस जेनरेट कोड पर एक नज़र डालें।
आप इसे सीधे परीक्षण नहीं करते हैं। यह कक्षा के माध्यम से परीक्षण किया जाएगा जहां इसे परिभाषित किया गया है।
और, यदि आप टीडीडी लागू करते हैं, क्योंकि वर्तमान में इस प्रश्न टैग का तात्पर्य है, तो परीक्षण क्या है जिसे आप केवल एक आंतरिक वर्ग के लिए कॉल करते हैं? मेरा मतलब है कि यह एक मानक वर्ग नहीं हो सकता है, जिसका निजी स्वामित्व उस वर्ग के स्वामित्व में है जिस पर आप काम कर रहे हैं?
हमने एक सहायक वर्ग का उपयोग किया है जो आंतरिक वर्गों पर लोड और कॉल विधियों के प्रतिबिंब का उपयोग करता है। यह भी डीबग प्रतीक जैसे का उपयोग कर
#if DEBUG
public
#else
internal
#endif
class MyInternalClass
{
...
}
हालांकि Esko Luontola का जवाब अधिक सही रूप में यह कार्यक्षमता या व्यापार की आवश्यकताओं को जो सबसे अधिक महत्वपूर्ण हैं है संकलन समय पर पहुँच को बदलने के लिए संभव है। महत्वपूर्ण जोखिम क्षेत्रों का परीक्षण करने के बजाय कोड कवरेज पर बहुत ध्यान केंद्रित करना आसान है।
ऐसा नहीं है कि मैं इसे की सलाह देते हैं, लेकिन आप भी InternalsVisibleToAttribute उपयोग कर सकते हैं।
लिंक किया गया पृष्ठ अब उपलब्ध नहीं है – Catch22
- 1. आंतरिक कक्षा
- 2. आंतरिक कक्षा
- 3. क्या मैं आंतरिक कक्षा
- 4. आंतरिक कक्षा दृश्य
- 5. एंड्रॉइड प्रोग्रार्ड, आंतरिक कक्षा
- 6. जावा आंतरिक कक्षा
- 7. यूएमएल: कक्षा आरेख में आंतरिक कक्षा
- 8. एक आंतरिक कक्षा का उद्देश्य?
- 9. आंतरिक कक्षा और आंतरिक इंटरफेस के साथ जावा जेनरिक
- 10. जेनरिक ऐरे क्रिएशन संकलन आंतरिक कक्षा
- 11. टेम्पलेट विरासत आंतरिक कक्षा पहुंच समस्या
- 12. बाहरी वर्ग ऑब्जेक्ट को आंतरिक कक्षा ऑब्जेक्ट
- 13. जावा आंतरिक कक्षा उपयोग और तत्काल
- 14. मैं एक आंतरिक कक्षा घोषित कैसे करूं?
- 15. भ्रम: आंतरिक, संरक्षित और आंतरिक संरक्षित
- 16. Django मॉडल की आंतरिक मेटा कक्षा क्यों प्रतिबंधित है?
- 17. आंतरिक कीवर्ड का उपयोग कर कक्षा को कैसे छुपाएं?
- 18. कक्षा में आंतरिक वर्ग का उपयोग करने वाले वर्ग?
- 19. विधि-स्थानीय आंतरिक कक्षा का उपयोग क्या है?
- 20. जावा कैसे आंतरिक कक्षा बंद करने को लागू करता है?
- 21. एक निजी आंतरिक कक्षा का नकल कैसे करें
- 22. संदर्भ सदस्यों के साथ आंतरिक कक्षा में डिफ़ॉल्ट असाइनमेंट ऑपरेटर
- 23. निजी कन्स्ट्रक्टर के साथ आंतरिक कक्षा को इंस्टेंट करना
- 24. उप-वर्ग से आंतरिक कक्षा को ओवरराइड/विस्तार कैसे करें?
- 25. क्यों डायलॉगफ्रैगमेंट आंतरिक कक्षा नहीं हो सकता है?
- 26. सी # में एक आंतरिक कक्षा को "ओवरराइड" कैसे करते हैं?
- 27. कक्षा पुस्तकालय में केवल आंतरिक प्रकार वाले नामस्थानों को छुपाएं?
- 28. जावा में आंतरिक कक्षाओं पर दो प्रश्न (कक्षा ए {कक्षा बी {}})
- 29. जावा में अज्ञात आंतरिक कक्षा से संलग्न कक्षा का संदर्भ कैसे प्राप्त करते हैं?
- 30. क्या बाहरी कक्षा आंतरिक कक्षा के सदस्यों तक पहुंच सकती है?
से विस्तृत व्याख्या देखें आप कहते हैं कि आप इस की सिफारिश नहीं होगा, लेकिन आप कैसे आप कुछ इस तरह का समाधान होगा? http://stackoverflow.com/questions/15440935/how-to-test-internal-class-library –
@ थॉमस: बिल्कुल एस्को अपने उत्तर में बताता है। या तो आप अपने सार्वजनिक इंटरफ़ेस के माध्यम से अप्रत्यक्ष रूप से आंतरिक API का परीक्षण करते हैं, या आप अपने आंतरिक एपीआई को सार्वजनिक रूप से प्रचारित करते हैं और उन्हें सीधे परीक्षण करते हैं। –