क्या एक मॉक ऑब्जेक्ट बनाना संभव है जो EasyMock के साथ कई इंटरफेस लागू करता है?क्या एक मॉक ऑब्जेक्ट बनाना संभव है जो EasyMock के साथ कई इंटरफेस लागू करता है?
उदाहरण के लिए, इंटरफ़ेस Foo
और इंटरफ़ेस Closeable
?
राइनो मोक्स में आप नकली वस्तु बनाते समय कई इंटरफेस प्रदान कर सकते हैं, लेकिन EasyMock की createMock()
विधि केवल एक प्रकार लेती है।
क्या यह Foo
और Closeable
दोनों को विस्तारित करता है, और फिर उस पर मजाक कर रहा है, जो एक अस्थायी इंटरफ़ेस बनाने के पतन के बिना EasyMock के साथ इसे प्राप्त करने के लिए संभव है?
interface Bar extends Foo, Closeable {
}
और फिर नकली इंटरफ़ेस बार:
मैं इसके साथ सहमत हूं, लेकिन विस्तार करने के लिए: यदि आप उपयोग कर रहे हैं निर्भरता इंजेक्शन, और आपकी कक्षा को एक फू और एक क्लोजेबल दोनों की आवश्यकता है, आपको वास्तव में उन लोगों के लिए दो अलग-अलग सेटर्स होना चाहिए। यदि आप इन दोनों के लिए एक ही वस्तु को इंजेक्ट करना चुनते हैं, तो महान, लेकिन मुझे लगता है कि कक्षा-अंडर-टेस्ट को यह जानने की आवश्यकता नहीं है कि वे एक ही वस्तु हैं - इसे फू को फू और क्लोजेबल के रूप में देखना चाहिए एक बंद करने योग्य –
निक, मैट, आपके इनपुट के लिए धन्यवाद। परिदृश्य को स्पष्ट करने के लिए, संदर्भ यह है कि फू मॉड्यूलर ऐड-इन सिस्टम के लिए एक इंटरफ़ेस है। तीसरे पक्ष के मॉड्यूल फू को लागू करते हैं और फिर तत्काल और ढांचे द्वारा उपयोग किए जाते हैं। वे वैकल्पिक रूप से क्लोजेबल को भी कार्यान्वित कर सकते हैं, जिस स्थिति में ढांचे का उपयोग करके उन्हें बंद कर दिया जाएगा। इसलिए, यूनिट परीक्षणों को दो अलग-अलग परिदृश्यों को कवर करने की आवश्यकता होती है: एक फू जो बंद करने योग्य भी है, और एक फू जो बंद करने योग्य नहीं है। मुझे लगता है कि इसका मतलब बनता है। –
@ निकहोल्ट: मैं आपसे पूरी तरह सहमत नहीं हूं। उस मामले पर विचार करें जब आपके पास इंटरफ़ेस 'व्यक्ति' है जिसमें केवल गेटर्स ('getFirstName()', get getddress() ', ...) और इंटरफ़ेस 'ModifiablePerson' है, जिसमें केवल सेटर्स (' setFirstName()', ' सेट एड्रेस() ', ...)। और अब आप एक एसयूटी का परीक्षण करना चाहते हैं, जो 'व्यक्ति' लेता है, लेकिन संशोधित ऑब्जेक्ट 'मॉडिफायबल पर्सन' का उदाहरण देता है और उस पर आधारित कुछ करता है। 'क्लोजेबल' भी एक अच्छा उदाहरण है: यदि ऑब्जेक्ट एक "विस्तारित" कार्यक्षमता प्रदान करता है, जिसे स्पष्ट रूप से 'exampleof' द्वारा चेक किया गया है और इसका लाभ उठाया गया है, तो इसमें क्या बुरा है? –