कभी-कभी वस्तुओं को केवल कसकर युग्मित करने की आवश्यकता होती है। उदाहरण के लिए, एक CsvFileवर्ग को संभवतः CsvRecordकक्षा (या ICsvRecordइंटरफ़ेस) के साथ कसकर काम करने की आवश्यकता होगी ।
हालाँकि मैंने अतीत में जो कुछ भी सीखा था, उसमें से एक परीक्षण-संचालित विकास के मुख्य सिद्धांतों में से एक है "कभी भी एक समय में एक से अधिक कक्षा का परीक्षण न करें।" मतलब आपको ICsvRecordवास्तविक उदाहरणों के बजाय मोक्स या स्टब्स का उपयोग करना चाहिए CsvRecord।
हालाँकि इस दृष्टिकोण को आजमाने के बाद, मैंने देखा कि CsvRecordक्लास में नकल करने से थोड़े बाल निकल सकते हैं। जो मुझे दो निष्कर्षों में से एक की ओर ले जाता है:
- इकाई परीक्षण लिखना कठिन है! यह एक कोड गंध है! Refactor!
- हर एक निर्भरता का मजाक उड़ाना अनुचित है।
जब मैंने अपने मोक्स को वास्तविक CsvRecordउदाहरणों से बदल दिया , तो चीजें बहुत आसानी से चली गईं। जब अन्य लोगों के विचारों की तलाश में मैं इस ब्लॉग पोस्ट पर ठोकर खाई , जो ऊपर # 2 का समर्थन करता है। उन वस्तुओं के लिए जो स्वाभाविक रूप से कसकर युग्मित हैं, हमें मॉकिंग के बारे में इतनी चिंता नहीं करनी चाहिए।
क्या मैं पटरी से उतर रहा हूँ? क्या # 2 ऊपर मानने के लिए कोई डाउनसाइड है? क्या मुझे वास्तव में अपने डिजाइन को फिर से बनाने के बारे में सोचना चाहिए?