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