मॉडरेटर नोट: यहां पहले से ही 39 उत्तर पोस्ट किए गए हैं (कुछ हटा दिए गए हैं)। अपना उत्तर पोस्ट करने से पहले , विचार करें कि आप चर्चा में कुछ सार्थक जोड़ सकते हैं या नहीं। आप संभावना से अधिक दोहरा रहे हैं कि किसी और ने पहले ही कहा है।
मैं कभी-कभी अपने आप को एक कक्षा में सार्वजनिक करने के लिए एक निजी विधि बनाने की जरूरत महसूस करता हूं, इसके लिए कुछ यूनिट टेस्ट लिखने के लिए।
आमतौर पर ऐसा इसलिए होता है क्योंकि विधि में कक्षा में अन्य विधियों के बीच साझा किए गए तर्क होते हैं और यह तर्क को अपने दम पर परखने के लिए तीखा होता है, या कोई अन्य कारण संभव हो सकता है कि मैं समसामयिक धागों में प्रयुक्त तर्क का परीक्षण करना चाहता हूं ताकि थ्रेडिंग समस्याओं के बारे में चिंता किए बिना। ।
क्या अन्य लोग खुद को ऐसा करते हुए पाते हैं, क्योंकि मुझे वास्तव में ऐसा करना पसंद नहीं है ?? मुझे व्यक्तिगत रूप से लगता है कि बोनस एक विधि को सार्वजनिक करने की समस्याओं से परे है जो वास्तव में वर्ग के बाहर कोई सेवा प्रदान नहीं करता है ...
अपडेट करें
सभी के उत्तर के लिए धन्यवाद, लगता है कि लोगों की रुचि बढ़ी है। मुझे लगता है कि आम सहमति का परीक्षण सार्वजनिक एपीआई के माध्यम से होना चाहिए क्योंकि यह एकमात्र ऐसा वर्ग है जिसका कभी भी उपयोग किया जाएगा, और मैं इसके लिए सहमत हूं। जिन मामलों के बारे में मैंने ऊपर उल्लेख किया है, उनमें से कुछ मैं ऊपर कर रहा था, वे असामान्य मामले थे और मुझे लगा कि ऐसा करने के लाभ इसके लायक हैं।
मैं हालांकि, हर बिंदु को देख सकता हूं कि यह वास्तव में कभी नहीं होना चाहिए। और जब इसके बारे में थोड़ा और सोचने पर मुझे लगता है कि परीक्षण को समायोजित करने के लिए आपके कोड को बदलना एक बुरा विचार है - आखिरकार, मुझे लगता है कि परीक्षण एक तरह से एक समर्थन उपकरण है और अगर आप करेंगे, तो एक समर्थन उपकरण को 'सपोर्ट टूल' में बदलने के लिए एक सिस्टम बदल रहा है बुरा अभ्यास।
@VisibileForTesting
इस तरह के तरीकों को बनाने के लिए एक एनोटेशन प्रदान करते हैं - मैं आपको ऐसा करने की सलाह देता हूं ताकि विधि के private
ठीक न होने का कारण सही ढंग से प्रलेखित न हो।