क्या जावा में जेएमॉक का उपयोग करके ऑब्जेक्ट निर्माण का मजाक करने का कोई तरीका है?ऑब्जेक्ट निर्माण का नकल कैसे करें?
उदाहरण के लिए, अगर मैं इस तरह के रूप में एक विधि है:
public Object createObject(String objectType) {
if(objectType.equals("Integer") {
return new Integer();
} else if (objectType.equals("String") {
return new String();
}
}
... वहाँ एक परीक्षा पद्धति में वस्तु के निर्माण की उम्मीद बाहर उपहास करने के लिए एक तरीका है?
मैं इस प्रकार की जांच करने के लिए कोड का एक अतिरिक्त बिट होने के बजाय कुछ कन्स्ट्रक्टर कहलाए जाने की उम्मीदों को रखने में सक्षम होना चाहता हूं (क्योंकि यह हमेशा मेरे उदाहरण के रूप में ठोस और सरल नहीं होगा)।
तो बजाय:
assertTrue(a.createObject() instanceof Integer);
मैं कुछ निर्माता की एक उम्मीद हो सकता था बुलाया जा रहा है। बस इसे थोड़ा क्लीनर बनाने के लिए, और वास्तव में एक और अधिक पठनीय तरीके से परीक्षण किया जा रहा है व्यक्त करें।
कृपया सरल उदाहरण बहाना, वास्तविक समस्या मैं पर काम कर रहा हूँ थोड़ा और अधिक जटिल है, लेकिन उम्मीद होने इसे सरल होगा।
में थोड़ा और अधिक पृष्ठभूमि के लिए:
मैं एक साधारण कारखाने विधि है, जो आवरण वस्तुओं बनाता है। लिपटे ऑब्जेक्ट्स को ऐसे पैरामीटर की आवश्यकता हो सकती है जो टेस्ट क्लास (यह पूर्व-मौजूदा कोड) में प्राप्त करना मुश्किल हो, इसलिए उन्हें बनाना मुश्किल है।
शायद जो मैं वास्तव में देख रहा हूं उसके करीब है: क्या एक पूरी कक्षा का नकल करने का कोई तरीका है (CGLib का उपयोग करके) एक में झुकाव के लिए हर विधि को निर्दिष्ट किए बिना, झुका हुआ है?
तो नकली एक निर्माता में लिपटे की जा रही है, तो जाहिर है तरीकों उस पर कहा जा सकता है, गतिशील रूप से प्रत्येक विधि बाहर मजाक की JMock करने में सक्षम है? कि के रूप में बहुत जटिल होगा
मेरा अनुमान है, नहीं है। लेकिन जानते हुए भी मैं गलत पेड़ भौंकने कर रहा हूँ मूल्यवान भी :-)
में मेरा उत्तर तुम हो कारखाने यह प्रत्येक प्रकार यह निर्माण हो सकता है (एक पूर्णांक कारखाने, एक स्ट्रिंग कारखाना, आदि) लेकिन, तुम सही हो के लिए खुद कारखानों है हो सकता था, जो ज़रूरत से ज़्यादा जटिल की ओर खड़ा है । आप जोर दे रहे हैं कि परीक्षा का शायद सबसे अच्छा तरीका है। – sblundy