वर्तमान में मुझे यूनिट परीक्षण में डाइविंग पूर्ण भाप से वापस रखने वाले सबसे बड़े मुद्दों में से एक यह है कि मेरे द्वारा लिखे गए कोड का वास्तव में बड़ा प्रतिशत विभिन्न स्रोतों से तीसरे पक्ष के COM ऑब्जेक्ट्स पर भारी निर्भर करता है जो एक-दूसरे के साथ बातचीत करते हैं (यदि आपको पता होना चाहिए तो मैं कई सहायक पुस्तकालयों का उपयोग कर माइक्रोसॉफ्ट ऑफिस के लिए एड-इन्स लिख रहा हूं)।आप यूनिट-टेस्ट कोड कैसे करते हैं जो तृतीय-पक्ष COM ऑब्जेक्ट्स के साथ इंटरैक्ट करता है और तत्काल करता है?
मुझे पता है कि मुझे शायद नकली वस्तुओं का उपयोग करना चाहिए, लेकिन इस मामले में मैं इसके बारे में वास्तव में कैसे जाऊं? मैं देख सकता हूं कि यह अपेक्षाकृत आसान है जब मुझे केवल पहले से मौजूद किसी ऑब्जेक्ट का संदर्भ देना होगा, लेकिन मेरे कुछ दिनचर्या बाहरी COM ऑब्जेक्ट्स को तुरंत चालू करते हैं और फिर कभी-कभी उन्हें किसी अन्य लाइब्रेरी से किसी अन्य बाहरी COM-ऑब्जेक्ट पर भेज देते हैं।
यहां सबसे अच्छा अभ्यास दृष्टिकोण क्या है? क्या मेरे पास मेरा परीक्षण कोड अस्थायी रूप से रजिस्ट्री में COM पंजीकरण जानकारी बदलना चाहिए ताकि परीक्षण कोड इसके बजाय मेरी नकली वस्तुओं में से एक को तुरंत चालू कर दे? क्या मुझे संशोधित प्रकार पुस्तकालय इकाइयों को इंजेक्ट करना चाहिए? वहां अन्य दृष्टिकोण क्या हैं?
मैं डेल्फी के लिए उदाहरण या औजारों के लिए विशेष रूप से आभारी हूं लेकिन यह भी सामान्य सलाह और उच्च स्तरीय स्पष्टीकरण के साथ ही खुश होगा।
धन्यवाद,
ओलिवर
सहमत; और चूंकि COM ऑब्जेक्ट्स के साथ सभी इंटरैक्शन (आईडीस्पेच के माध्यम से ऑटोमेशन कॉल को छोड़कर) एक COM इंटरफ़ेस का उपयोग करता है, तो आपको केवल अपने मॉक क्लास में लागू करने में सक्षम होना चाहिए। – rpetrich