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