डेवलपमेंट वर्कफ्लो
Claude-पावर्ड TDD के साथ क्लीनर कोड लिखें
रेड, ग्रीन, रिफैक्टर, टेस्ट AI लिखता है
Claude Code TDD में असाधारण रूप से अच्छा है, आप वह व्यवहार बताते हैं जो आप चाहते हैं, यह पहले फेल होने वाला टेस्ट लिखता है, फिर उसे पास कराने वाला कोड इम्प्लीमेंट करता है। यह TDD के पारंपरिक दर्द बिंदु को उल्टा कर देता है: टेस्ट लिखना अब धीमा हिस्सा नहीं है। आप सामान्य अंग्रेज़ी/भाषा में व्यवहार को स्पेसिफाई करने पर फोकस करते हैं, और Claude Code टेस्ट सेटअप, एसर्शन और मॉकिंग का बॉयलरप्लेट संभालता है। नतीजा है ज्यादा टेस्ट कवरेज, बेहतर डिज़ाइन किया गया कोड, और तेज़ डेवलपमेंट।
Claude Code के साथ टेस्ट-ड्रिवन डेवलपमेंट red-green-refactor साइकल को फॉलो करता है: आप वह व्यवहार बताते हैं जो आप चाहते हैं, Claude को फेल होने वाला टेस्ट लिखने दें, फिर उसे पास कराने के लिए कोड इम्प्लीमेंट करने को कहें। स्पष्ट स्पेसिफिकेशन दिए जाने पर, Claude Code पूरे लूप को ऑटोनॉमसली संभालता है।
लूप
Claude Code के साथ TDD लूप
वह व्यवहार बताएं जो आप इम्प्लीमेंट करना चाहते हैं: "यूज़र्स को ईमेल के जरिए अपना पासवर्ड रीसेट करने में सक्षम होना चाहिए। एंडपॉइंट को ईमेल के मौजूद होने की पुष्टि करनी चाहिए, एक टाइम-लिमिटेड टोकन जनरेट करना चाहिए, और एक रीसेट लिंक भेजना चाहिए।" Claude Code पहले टेस्ट लिखता है, जो किसी भी इम्प्लीमेंटेशन के मौजूद होने से पहले, अनुमानित HTTP रेस्पॉन्स, टोकन जनरेशन, और ईमेल भेजने को assert करता है। यह टेस्ट को चलाकर पुष्टि करता है कि यह सही कारण से फेल होता है (function मिसिंग है, सिंटैक्स एरर नहीं)।
Claude Code फिर वह सबसे सिंपल इम्प्लीमेंटेशन लिखता है जो टेस्ट को पास कराता है। यह ओवर-इंजीनियर नहीं करता, यह सिर्फ टेस्ट एसर्शन्स को पूरा करने के लिए पर्याप्त कोड लिखता है। यह अनुशासन है जहां TDD चमकता है: टेस्ट कॉन्ट्रैक्ट को परिभाषित करता है, और इम्प्लीमेंटेशन उसे पूरा करता है। Claude Code इम्प्लीमेंटेशन लिखने के बाद टेस्ट सूट चलाता है यह वेरिफाई करने के लिए कि नया टेस्ट पास हो जाता है और कोई मौजूदा टेस्ट नहीं टूटता।
पास होते टेस्ट्स को सेफ्टी नेट के रूप में इस्तेमाल करते हुए, आप Claude Code से इम्प्लीमेंटेशन को साफ करने के लिए कहते हैं: हेल्पर फंक्शन एक्सट्रैक्ट करना, वेरिएबल नामों में सुधार, डुप्लिकेशन कम करना, या परफॉर्मेंस ऑप्टिमाइज़ करना। हर रिफैक्टरिंग स्टेप के बाद, Claude Code टेस्ट फिर से चलाता है। अगर कोई टेस्ट फेल होता है, तो रिफैक्टरिंग ने एक behavior change ला दिया है, और Claude Code उसे या तो वापस बदल देता है या एडजस्ट करता है। यह फेज़ comprehensive टेस्ट्स के सहारे साफ, maintainable कोड बनाता है।
वॉकथ्रू
अपना पहला टेस्ट-ड्रिवन फीचर लिखना
Claude Code को यह बताने से शुरू करें कि यूज़र के नज़रिए से फीचर को क्या करना चाहिए। "calculateDiscount नाम का फंक्शन बनाओ जो price और percentage लेता है" कहने के बजाय, कहें "प्रीमियम मेम्बरशिप वाले कस्टमर्स को उनके ऑर्डर टोटल पर 20% छूट मिलनी चाहिए, लेकिन छूट कभी $50 से ज्यादा नहीं होनी चाहिए।" यह बिहेवियरल डिस्क्रिप्शन बेहतर टेस्ट बनाती है क्योंकि टेस्ट बिज़नेस रूल्स वेरिफाई करते हैं, इम्प्लीमेंटेशन डिटेल्स नहीं।
Claude Code कई टेस्ट केसेज़ के साथ एक टेस्ट फाइल लिखता है: हैप्पी पाथ (प्रीमियम यूज़र, वैलिड डिस्काउंट), एज केस (डिस्काउंट $50 कैप से ज्यादा हो जाता है, जीरो-प्राइस ऑर्डर), और एरर केसेज़ (नॉन-प्रीमियम यूज़र, नेगेटिव प्राइस)। Claude Code को फीचर इम्प्लीमेंट करने देने से पहले इन टेस्ट्स को रिव्यू करें। टेस्ट केसेज़ आपके स्पेसिफिकेशन को परिभाषित करते हैं, अगर कोई केस मिसिंग है, तो अभी उसे जोड़ दें। टेस्ट केस जोड़ना, प्रोडक्शन में मिसिंग एज केस डिस्कवर करने से कहीं ज्यादा सस्ता है।
एक बार जब आप टेस्ट्स को अप्रूव कर दें, Claude Code को फीचर इम्प्लीमेंट करने के लिए कहें। यह कोड लिखता है, टेस्ट्स चलाता है, और आपको रिजल्ट्स दिखाता है। अगर सभी टेस्ट्स पहली कोशिश में पास हो जाएं, तो आप रिफैक्टरिंग की ओर बढ़ सकते हैं। अगर कुछ टेस्ट्स फेल होते हैं, तो Claude Code फेलियर आउटपुट पढ़ता है और इम्प्लीमेंटेशन को एडजस्ट करता है। यह साइकल आम तौर पर एक या दो इटरेशन में पूरी हो जाती है, जो मैनुअल write-run-debug लूप से कहीं ज्यादा तेज़ है।
यह क्यों काम करता है
Claude Code TDD को आसान क्यों बनाता है
डेवलपर्स के TDD स्किप करने की नंबर एक वजह यह है कि टेस्ट लिखना धीमा और थकाऊ लगता है, खास तौर पर सेटअप कोड, मॉकिंग, और बॉयलरप्लेट एसर्शन्स। Claude Code इस दिक्कत को पूरी तरह खत्म कर देता है। आप एक वाक्य में बताते हैं कि क्या होना चाहिए, और Claude Code सही इम्पोर्ट्स, फिक्स्चर्स, मॉक्स, और एज केस कवरेज के साथ पूरी टेस्ट फाइल जेनरेट करता है। कॉग्निटिव लोड "इस dependency को कैसे मॉक करूं" से "कौन सा व्यवहार महत्वपूर्ण है" में शिफ्ट हो जाता है।
जब Claude Code बिहेवियर डिस्क्रिप्शन से टेस्ट लिखता है, तो यह वे एज केसेज़ जेनरेट करता है जो डेवलपर्स अक्सर भूल जाते हैं: empty इनपुट्स, बाउंडरी वैल्यूज़, concurrent एक्सेस, null हैंडलिंग, और इनवैलिड स्टेट ट्रांज़िशन। यह ऐसा कर सकता है क्योंकि इसने लाखों टेस्ट सूट्स देखे हैं और जानता है कि कौन से एज केसेज़ आमतौर पर बग्स का कारण बनते हैं। आपको खुद हर केस के बारे में सोचने की जरूरत बिना, ज्यादा थॉरो टेस्ट कवरेज मिलती है।
TDD बनाए रखना मुश्किल है क्योंकि टेस्ट स्किप करके सीधे कोड लिखने का लालच हमेशा मौजूद रहता है। Claude Code के साथ, पहले टेस्ट लिखना वास्तव में पहले इम्प्लीमेंटेशन लिखने से तेज़ है, इसलिए इसे स्किप करने का कोई इंसेंटिव नहीं है। Red-Green-Refactor साइकल नेचुरल बन जाती है क्योंकि Claude Code हर स्टेप को लागू करता है: यह टेस्ट लिखता है, फेलियर कन्फर्म करने के लिए इसे चलाता है, कोड इम्प्लीमेंट करता है, और सफलता कन्फर्म करने के लिए फिर से टेस्ट चलाता है।
फ्रेमवर्क सपोर्ट
टेस्ट फ्रेमवर्क्स जो Claude Code सपोर्ट करता है
Claude Code सही मॉकिंग, async हैंडलिंग, स्नैपशॉट टेस्टिंग, और React Testing Library इंटीग्रेशन के साथ Jest और Vitest टेस्ट्स लिखता है। यह describe/it ब्लॉक्स जेनरेट करता है जो स्पेसिफिकेशन्स जैसे पढ़े जाते हैं और क्लीन टेस्ट आइसोलेशन के लिए beforeEach/afterEach का उपयोग करता है।
fixtures, parametrize, marks, conftest.py, और pytest-asyncio, pytest-django, और pytest-mock जैसे plugins सहित पूरा pytest सपोर्ट। Claude Code ऐसे टेस्ट्स लिखता है जो fixtures के माध्यम से dependency injection का उपयोग करते हैं और Arrange-Act-Assert पैटर्न को फॉलो करते हैं।
Claude Code सही error wrapping और subtests के साथ idiomatic Go table-driven tests लिखता है, और property-based testing के लिए सही Result हैंडलिंग, setup/teardown, और proptest इंटीग्रेशन के साथ Rust #[test] functions लिखता है।
फुल-स्टैक TDD के लिए, Claude Code Playwright टेस्ट्स लिखता है जो ब्राउज़र से आपके पूरे एप्लिकेशन को एक्सरसाइज़ करते हैं। यह पेज नेविगेशन, फॉर्म इंटरैक्शन, API एसर्शन्स, और विज़ुअल रिग्रेशन को संभालता है, जिससे आप यूज़र स्टोरीज़ बताते हैं और यह ऑटोमेटेड टेस्ट स्क्रिप्ट्स जेनरेट करता है।
FAQ
Claude Code के साथ TDD, सामान्य सवाल
बिल्कुल। Claude Code आपके मौजूदा टेस्ट इंफ्रास्ट्रक्चर, टेस्ट फ्रेमवर्क, fixtures, mocks, factories, और कन्वेंशन पढ़ता है, और नए टेस्ट लिखता है जो आपकी मौजूदा सूट के साथ प्राकृतिक रूप से फिट होते हैं। अगर आपका प्रोजेक्ट conftest.py fixtures के साथ pytest इस्तेमाल करता है, तो Claude Code उन fixtures का उपयोग करने वाले टेस्ट जेनरेट करता है। अगर आपका React प्रोजेक्ट custom render utilities के साथ Testing Library इस्तेमाल करता है, तो Claude Code उस पैटर्न को फॉलो करता है। आपको शुरुआत से शुरू करने की जरूरत नहीं है।
कवरेज परसेंटेज, कवरेज क्वालिटी से कम महत्वपूर्ण है। Claude Code आपको लाइन कवरेज के बजाय बिहेवियर कवरेज पर फोकस करने में मदद करता है। जब आप फीचर को इस हिसाब से बताते हैं कि उसे क्या करना चाहिए (कैसे नहीं), तो जेनरेट किए गए टेस्ट्स नेचुरली महत्वपूर्ण पाथ्स को कवर करते हैं। फिर भी, Claude Code आपकी मौजूदा कवरेज रिपोर्ट एनालाइज़ कर सकता है और untested branches पहचान सकता है, फिर गैप्स भरने के लिए targeted टेस्ट्स लिख सकता है। बिज़नेस लॉजिक और एरर हैंडलिंग की थॉरो कवरेज का लक्ष्य रखें, 100% लाइन कवरेज का नहीं।
हां। Claude Code इंटीग्रेशन टेस्ट्स लिखता है जो कई कॉम्पोनेंट्स को एक साथ एक्सरसाइज़ करते हैं, API endpoints जो एक असली टेस्ट डेटाबेस को हिट करते हैं, React कॉम्पोनेंट्स जो mocked API responses के साथ इंटरैक्ट करते हैं, या service layers जो कई dependencies को कोऑर्डिनेट करते हैं। यह टेस्ट डेटाबेस सेटअप और टियरडाउन, टेस्ट फिक्स्चर्स, और मॉक सर्वर कॉन्फिगरेशन को संभालता है। API इंटीग्रेशन टेस्ट्स के लिए, यह ऐसे टेस्ट जेनरेट करता है जो authentication, validation, और error responses सहित पूरे request-response साइकल को वेरिफाई करते हैं।
Green (टेस्ट्स वर्किंग इम्प्लीमेंटेशन के साथ पास होते हैं) के बाद, आप Refactor फेज़ में एंटर करते हैं। Claude Code से इम्प्लीमेंटेशन सुधारने, फंक्शन्स एक्सट्रैक्ट करने, डुप्लिकेशन कम करने, नेमिंग सुधारने, या परफॉर्मेंस ऑप्टिमाइज़ करने के लिए कहें। Claude Code बदलाव करता है और हर रिफैक्टरिंग स्टेप के बाद टेस्ट सूट फिर से चलाता है। अगर कोई टेस्ट फेल होता है, तो इसका मतलब है कि रिफैक्टरिंग ने व्यवहार बदल दिया है, और Claude Code या तो रिफैक्टरिंग को फिक्स करेगा या आपके रिव्यू के लिए behavior change को फ्लैग करेगा। टेस्ट्स पूरे समय सेफ्टी नेट के रूप में काम करते हैं।
फीचर बिहेवियर को नेचुरल लैंग्वेज में बताएं, Claude Code को फेल होने वाला टेस्ट लिखने दें (Red), फिर इसे टेस्ट पास कराने वाला कोड इम्प्लीमेंट करने के लिए कहें (Green), और अंत में रिफैक्टर रिक्वेस्ट करें (Refactor)। Claude Code के साथ यह Red-Green-Refactor साइकल मैनुअल TDD से तेज़ है क्योंकि Claude टेस्ट्स और इम्प्लीमेंटेशन दोनों लिखता है, जबकि आप रिक्वायरमेंट्स डिफाइन करने पर फोकस करते हैं।
हां। Claude Code हर टेस्ट लिखने के बाद और हर इम्प्लीमेंटेशन चेंज के बाद आपकी टेस्ट सूट चलाता है। यह टेस्ट आउटपुट पढ़ता है, फेलियर्स पहचानता है, और टेस्ट पास होने तक इटरेट करता है। आप हर फाइल एडिट के बाद ऑटोमैटिकली linters और type checkers चलाने के लिए hooks भी सेट कर सकते हैं, जिससे एक पूरी तरह से ऑटोमेटेड quality gate बनता है।
TDD सीखें Claude Code के साथ
इसके बारे में पढ़ना बंद करें। कुछ बनाएं।