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