सबसे पहले, TDD आपको सख्ती से SOLID कोड लिखने के लिए मजबूर नहीं करता है । यदि आप चाहते थे तो आप TDD कर सकते थे और एक बड़ी गड़बड़ बना सकते थे।
बेशक, ठोस सिद्धांतों को जानने में मदद मिलती है, क्योंकि अन्यथा आप अंत में अपनी कई समस्याओं का अच्छा जवाब नहीं दे सकते हैं, और इसलिए खराब परीक्षणों के साथ बुरा कोड भी लिख सकते हैं।
यदि आप पहले से ही ठोस सिद्धांतों के बारे में जानते हैं, तो टीडीडी आपको उनके बारे में सोचने और उन्हें सक्रिय रूप से उपयोग करने के लिए प्रोत्साहित करेगा।
यह कहा गया है, यह जरूरी नहीं है कि यह सभी पत्रों को SOLID में शामिल न करे , लेकिन यह आपको कम से कम आंशिक रूप से SOLID कोड लिखने के लिए प्रोत्साहित और प्रोत्साहित करता है, क्योंकि यह ऐसा न करने के परिणामों को तुरंत दिखाई देता है और कष्टप्रद बनाता है।
उदाहरण के लिए:
- आपको डिकोड्ड कोड लिखने की आवश्यकता है ताकि आप अपनी आवश्यकता के अनुसार नकली हो सकें। यह निर्भरता उलटा सिद्धांत का समर्थन करता है ।
- आपको ऐसे परीक्षण लिखने की आवश्यकता है जो स्पष्ट और संक्षिप्त हों, इसलिए आपको परीक्षणों में बहुत अधिक परिवर्तन नहीं करना पड़ेगा (जो अन्यथा किए जाने पर कोड शोर का एक बड़ा स्रोत बन सकता है)। यह एकल जिम्मेदारी सिद्धांत का समर्थन करता है ।
- यह तर्क दिया जा सकता है, लेकिन इंटरफ़ेस अलगाव सिद्धांत कक्षाओं को लाइटर इंटरफेस पर निर्भर करने की अनुमति देता है जो मॉकिंग का पालन करने और समझने में आसान बनाते हैं, क्योंकि आपको यह पूछने की ज़रूरत नहीं है कि "इन 5 तरीकों का भी मज़ाक क्यों नहीं किया गया?", या इससे भी महत्वपूर्ण बात यह है कि आपके पास यह चुनने का कोई विकल्प नहीं है कि किस विधि का मजाक उड़ाया जाए। यह अच्छा है जब आप वास्तव में इसे परीक्षण करने से पहले कक्षा के पूरे कोड पर नहीं जाना चाहते हैं, और यह कैसे काम करता है इसकी एक बुनियादी समझ पाने के लिए परीक्षण और त्रुटि का उपयोग करें।
ओपन / बंद सिद्धांत का पालन करना कोड के बाद लिखे गए परीक्षणों की अच्छी तरह से मदद कर सकता है , क्योंकि यह आमतौर पर आपको परीक्षण कक्षाओं में बाहरी सेवा कॉल को ओवरराइड करने की अनुमति देता है जो परीक्षण के तहत कक्षाओं से प्राप्त होते हैं। टीडीडी में मेरा मानना है कि यह अन्य सिद्धांतों की तरह आवश्यक नहीं है, लेकिन मुझसे गलती हो सकती है।
Liskov प्रतिस्थापन नियम का पालन करना बहुत अच्छा है यदि आप अपनी कक्षा के लिए एक असमर्थित उदाहरण प्राप्त करने के लिए परिवर्तनों को कम करना चाहते हैं, जो कि समान रूप से टाइप किए गए इंटरफ़ेस को लागू करने के लिए होता है, लेकिन यह उचित परीक्षण के मामलों में होने की संभावना नहीं है क्योंकि आप आम तौर पर अपनी निर्भरता के वास्तविक-दुनिया के कार्यान्वयन को किसी भी वर्ग-अंडर-टेस्ट में पास नहीं करना है।
सबसे महत्वपूर्ण बात, SOLID सिद्धांतों को आपको क्लीनर, अधिक समझने योग्य और बनाए रखने योग्य कोड लिखने के लिए प्रोत्साहित करने के लिए बनाया गया था, और इसी तरह TDD था। इसलिए यदि आप टीडीडी को ठीक से करते हैं, और आप ध्यान देते हैं कि आपका कोड और आपके परीक्षण कैसे दिखते हैं (और यह इतना कठिन नहीं है क्योंकि आपको तत्काल प्रतिक्रिया, एपीआई और शुद्धता प्राप्त होती है), तो आप सामान्य रूप से SOLID सिद्धांतों के बारे में कम चिंता कर सकते हैं।