मैं हमेशा वर्किंग कोड लिखने में संदेह करता रहा हूं - पोर्टिंग कोड इसका अपवाद नहीं है। हालांकि, टीडीडी और स्वचालित परीक्षण के आगमन के साथ यह कोड को फिर से लिखना और रिफैक्ट करने के लिए बहुत अधिक उचित है।
क्या किसी को पता है कि क्या कोई TDD उपकरण है जिसका उपयोग पुराने कोड को पोर्ट करने के लिए किया जा सकता है? आदर्श रूप से आप निम्नलिखित कार्य कर सकते हैं:
- पुराने कोड के लिए भाषा अज्ञेय इकाई परीक्षण लिखें जो पास हो (या यदि आप बग ढूंढते हैं तो विफल!)।
- अपने अन्य कोड आधार पर यूनिट परीक्षण चलाएं जो विफल हो जाते हैं।
- अपनी नई भाषा में कोड लिखें, जो पुराने कोड को देखे बिना परीक्षण पास करता है।
विकल्प यह होगा कि चरण 1 को "भाषा 1 में यूनिट परीक्षण लिखें" और "पोर्ट यूनिट टेस्ट टू लैंग्वेज 2" को विभाजित किया जाए, जिससे प्रयास की आवश्यकता काफी बढ़ जाती है और यह बताना मुश्किल हो जाता है कि क्या पुराने कोड बेस के बाद इसे बनाए रखा जाना बंद हो जाएगा? पोर्ट (यानी, आपको इस कोड आधार पर निरंतर एकीकरण का लाभ नहीं मिलता है)।
संपादित करें: यह StackOverflow पर इस प्रश्न पर ध्यान देने योग्य है ।
expect
। यदि आपके पास एक यूनिक्स शैली की विरासत प्रणाली है जो स्टड और स्टडआउट का उपयोग करके पाइप के साथ संचार करती है तो उस उपकरण का उपयोग सुनिश्चित किया जा सकता है। वास्तव में, किसी भी स्क्रिप्टिंग भाषा के साथ परीक्षण करना भी काफी आसान होगा।
legacy language x
है fancy new language y
। मैं यूनिक्स के बारे में कुछ भी बताने का प्रयास नहीं कर रहा था!
expect
अपने परीक्षणों को लागू करने के लिए उपयोग करें।