2012-10-11 15 views
8

मैं जूनिट में संरक्षित विधि से निपटने के लिए एक अच्छा तरीका सोच रहा हूं।जूनिट संरक्षित विधि

मान लीजिए कि मैं ए नामक एक वर्ग का परीक्षण करना चाहता हूं जिसमें संरक्षित सदस्य और कन्स्ट्रक्टर है। मुझे समझ में आया कि कक्षा ए का परीक्षण करने के लिए मुझे एटीस्ट नामक एक और कक्षा लिखनी चाहिए जो टेस्टकेस का विस्तार कर सकती है (यह जूनिट 3 में अनिवार्य होना चाहिए)। क्योंकि मैं एक संरक्षित विधि का परीक्षण करना चाहता हूं और क्योंकि ए में एक संरक्षित कन्स्ट्रक्टर है, इसलिए मेरी टेस्ट क्लास एटस्ट को कक्षा ए का विस्तार करना चाहिए जहां उस वर्ग को बनाने और विधि तक पहुंचने में सक्षम होने के लिए उस विधि को लागू किया गया है।

दोनों वर्गों से एक अच्छा समाधान एक अच्छा समाधान हो सकता है?

पीएस। मुझे पहले से ही पता चला है कि जूनिट 4 में टेस्टकेस से विरासत से बचा जा सकता है।

+0

क्या आप समझा सकते हैं कि आप टेस्टकेस का विस्तार क्यों करना चाहते हैं? मुझे लगता है कि आप जो भी कह रहे हैं वह करने में सक्षम होना चाहिए और ए को अपने संरक्षित तरीकों को प्रचारित करने के लिए विस्तार करना चाहिए। मैंने इसे न्यूटिट के साथ भोजन किया है और यह ठीक है – cowboydan

+0

[जूनिट और जावा: गैर-सार्वजनिक तरीकों का परीक्षण] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/440786/junit-java-testing-non-public- विधियों) –

उत्तर

17

A के संरक्षित सदस्यों तक पहुंच प्राप्त करने के लिए, आप उसी पैकेज में A और ATest डाल सकते हैं।

+1

+1 - यह संरक्षित और पैकेज निजी (डिफ़ॉल्ट) विधियों दोनों का परीक्षण करने के लिए एक आम सम्मेलन है। –

1

जावा कार्यान्वयन के एकाधिक विरासत की अनुमति नहीं देता है। आप कई इंटरफेस लागू कर सकते हैं।

मैं परीक्षण के तरीकों पर जाने के लिए प्रतिबिंब का उपयोग करना पसंद करूंगा जो मैं नहीं चाहता कि क्लाइंट के बारे में जानना चाहें। निजी तरीकों के लिए भी काम करता है।

संबंधित मुद्दे