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