मैं एक वर्ग है कि कुछ निजी क्षेत्रों initializes में एक विधि का परीक्षण इकाई के लिए कोशिश कर रहा हूँ:शून्य विधि का परीक्षण कैसे करें जो केवल निजी वर्ग सदस्य चर को संशोधित करता है?
public void init(Properties props) throws Exception {
this.language = props.getProperty(Constants.LANGUAGE,Constants.LANGUAGE_DEFAULT);
this.country = props.getProperty(Constants.COUNTRY,Constants.COUNTRY_DEFAULT);
try {
this.credits = Integer.valueOf(props.getProperty(Constants.CREDITS_OPTION_NAME, Constants.CREDITS_DEFAULT_VALUE));
} catch (NumberFormatException e) {
throw new Exception("Invalid configuration: 'credits' does not contain a valid integer value.", e);
}
//rest of method removed for sake of simplicity
}
मेरे दुविधा है कि मैं बात पर जोर देना भाषा, देश कि चाहते हैं और खेतों init बुला के बाद स्थापित किए गए हैं क्रेडिट है, हालांकि वे सार्वजनिक एक्सेसर विधियों के साथ निजी हैं। मुझे लगता है कि इसका परीक्षण करने के लिए दो समाधान हैं:
- निजी फ़ील्ड तक पहुंचने के लिए सार्वजनिक विधियां बनाएं, फिर इन विधि को इनिट विधि का परीक्षण करने के बाद कॉल करें।
- इकाई परीक्षण केवल इनिट विधि को कॉल करें, और मान लें कि सबकुछ ठीक से काम करता है, कोई अपवाद नहीं फेंक दिया गया है।
आपको इस विधि का परीक्षण करने का आदर्श तरीका क्या लगता है?
क्या कोई कारण नहीं है कि कोई भी सेटर को कॉल करने वाले किसी अन्य परीक्षण को जोड़ने का सुझाव देता है, फिर "उसी फ़ील्ड में एक और तरीका जिसे इन फ़ील्ड को सेट करने की आवश्यकता है?" मैं टीडीडी के लिए काफी नया हूं और अपने काम में इस तरह के समाधान की ओर झुका रहा था, क्या इसमें कोई समस्या है? क्या यह अभी भी इकाई परीक्षण, या कुछ और, एकीकरण परीक्षण या कुछ की तरह है? जैसा कि यहां सुझाव दिया गया है: http://stackoverflow.com/questions/3193257/should-i-test-public-class-function-that-changes-only-internal-state-of-the-obje –