मेरी सी परीक्षण इकाई के लिए सक्षम होने के लिए ++ कोड मैं आमतौर पर परीक्षण एक या कई वस्तुओं है कि या तो "उत्पादन कोड" या नकली/नकली वस्तुओं (चलो कॉल किया जा सकता है के तहत वर्ग के निर्माता को पारित करने के लिए इन इंजेक्शन ऑब्जेक्ट्स)। मैंने इसेइंटरफेस बनाम टेम्पलेट्स सी में निर्भरता इंजेक्शन ++
- एक इंटरफ़ेस बनाना है जो "उत्पादन कोड" वर्ग और नकली/नकली वर्ग दोनों विरासत में है।
- परीक्षण के अंतर्गत कक्षा एक टेम्पलेट वर्ग है कि टेम्पलेट पैरामीटर के रूप में इंजेक्शन वस्तुओं के प्रकार के निर्माता के लिए पैरामीटर के रूप में इंजेक्शन वस्तुओं के उदाहरण लेता है, और बनाना।
कुछ यादृच्छिक विचार:
- जब तक हम अवधारणाओं (C++ 0x) है, केवल दस्तावेज और पैरामीटर नामकरण संकेत जाएगा कि (जब टेम्पलेट का उपयोग कर) परीक्षण के अंतर्गत वर्ग प्रदान करने के लिए।
- यह हमेशा नहीं विरासत कोड के लिए इंटरफेस बनाने के लिए संभव है
- इंटरफ़ेस मूल रूप से केवल निर्भरता इंजेक्शन
- करने के लिए उसी तरह सक्षम होने के लिए बनाई गई है: templating परीक्षण के अंतर्गत वर्ग केवल निर्भरता इंजेक्शन सक्षम करने के लिए किया जाता है
आपके क्या विचार हैं? क्या इस समस्या के अन्य समाधान हैं?
यह इतना आसान है, फिर भी वास्तव में शक्तिशाली है। मुझें यह पसंद है! –
बस रिकार्ड के लिए, लोगों को बनाने के तरीकों आभासी (गैर आभासी इंटरफेस (NVI) मुहावरा देखें) –
हाँ, कभी कभी इस दृष्टिकोण "puristic NVI" के साथ संघर्ष में आ सकता है के साथ मुद्दों देखते हैं कि बारे में पता होना चाहिए। कई मामलों में आप सिर्फ संरक्षित आभासी कार्यों मजाक के साथ भाग प्राप्त कर सकते हैं, लेकिन मुझे लगता है कि यह यह सार्वजनिक-आभासी बनाने के लिए और अभी भी NVI का उपयोग बहुत ज्यादा चोट नहीं पड़ता कि आप सार्वजनिक गैर आभासी इंटरफेस नकली करने की आवश्यकता है। एक इस मामले में सबसे अच्छा अभ्यास के कुछ संकलक प्रवर्तन खो करता है, लेकिन नहीं सबसे अच्छा अभ्यास ही। –