विवरण पढ़ने से, मैं समझता हूं कि फ़ंक्शन लिखने से पहले और उसके बाद किए गए यूनिट परीक्षण में टीडीडी परीक्षण किए जाते हैं।
क्या यह मुख्य अंतर है, या दो शब्दों की तुलना भी नहीं की जा सकती। शायद, यूनिट परीक्षण टीडीडी का एक एकीकृत हिस्सा है।
विवरण पढ़ने से, मैं समझता हूं कि फ़ंक्शन लिखने से पहले और उसके बाद किए गए यूनिट परीक्षण में टीडीडी परीक्षण किए जाते हैं।
क्या यह मुख्य अंतर है, या दो शब्दों की तुलना भी नहीं की जा सकती। शायद, यूनिट परीक्षण टीडीडी का एक एकीकृत हिस्सा है।
जवाबों:
यूनिट टेस्टिंग को संदर्भित करता है क्या आप परीक्षण कर रहे हैं, TDD करने के लिए जब आप परीक्षण कर रहे हैं।
दो ऑर्थोगोनल हैं।
यूनिट टेस्टिंग का मतलब है, व्यवहार की अलग-अलग इकाइयों का परीक्षण करना। व्यवहार की एक व्यक्तिगत इकाई व्यवहार की सबसे छोटी संभव इकाई है जिसे व्यक्तिगत रूप से अलगाव में परीक्षण किया जा सकता है। (मुझे पता है कि वे दो परिभाषाएं परिपत्र हैं, लेकिन वे व्यवहार में काफी अच्छी तरह से काम करती हैं।)
अपना कोड लिखने से पहले या जब आप अपना कोड लिखेंगे, तब आप अपना कोड लिखने से पहले यूनिट टेस्ट लिख सकते हैं।
TDD का अर्थ है (फिर से, स्पष्ट प्रकार) आपके परीक्षणों को आपके विकास (और आपके डिज़ाइन) को चलाने देता है। आप इकाई परीक्षण, कार्यात्मक परीक्षण और स्वीकृति परीक्षण के साथ कर सकते हैं। आमतौर पर, आप तीनों का उपयोग करते हैं।
टीडीडी का सबसे महत्वपूर्ण हिस्सा मध्य डी है । आप परीक्षणों को चलाने दें । परीक्षण आपको बताते हैं कि आपको क्या करना है, आगे क्या करना है। वे आपको बताते हैं कि एपीआई क्या होने जा रहा है, डिजाइन क्या है। (यह महत्वपूर्ण है: टीडीडी पहले परीक्षण लिखने के बारे में नहीं है। बहुत सारी परियोजनाएं हैं जो पहले परीक्षण लिखते हैं लेकिन टीडीडी का अभ्यास नहीं करते हैं। परीक्षण को लिखने से पहले केवल एक पूर्वापेक्षा है कि परीक्षणों को विकसित करने में सक्षम होने के लिए।
आप परीक्षण संचालित विकास किए बिना इकाई परीक्षण कर सकते हैं। हालाँकि आप इकाई परीक्षणों का उपयोग किए बिना संचालित विकास का परीक्षण नहीं कर सकते।
जब आप पारंपरिक इकाई परीक्षण करते हैं , तो आप अपना कोड लिखने के बाद परीक्षण लिखते हैं ।
टेस्ट संचालित विकास दृष्टिकोण कोड लिखने से पहले यूनिट टेस्ट लिखना है।
TDD (IMHO) के सबसे दिलचस्प फायदे सरल इकाई परीक्षण की तुलना में:
टीडीडी और यूनिट परीक्षण दो बहुत ही विशिष्ट शब्द हैं जिनका अक्सर दुरुपयोग होता है।
टीडीडी एक परीक्षण लिख रहा है जो विफल हो जाएगा, फिर इसे चलाने के लिए आवश्यक न्यूनतम कोड लिखना, फिर कोड को साफ करने के लिए फिर से भरना। यह चक्र में किया जाता है, असफल -> पास -> रिफ्लेक्टर, कोड के लिए प्रत्येक ज्ञात आवश्यकता के लिए एक नया परीक्षण जोड़ना। हाल ही में, TDD उस चक्र में इकाई परीक्षणों को लिखने के बारे में और भी विशेष रूप से बन गया है, इसे ATDD (BDD का सबसेट) से अलग करने के लिए जो एक समान चक्र में स्वीकृति परीक्षण लिख रहा है।
यूनिट परीक्षण छोटे, पृथक इकाइयों में एक कोड का परीक्षण करने के बारे में है। यहां आम भ्रम यह है कि यदि आप इकाई परीक्षण उपकरण का उपयोग कर रहे हैं, जैसे कि xUnit या Rspec, परीक्षण परीक्षण चलाने के लिए कि आप इकाई परीक्षण लिख रहे हैं। आवश्यक रूप से यह सही नहीं है। सेलेनियम ढांचे का उपयोग करके परीक्षण चलाने के लिए उन उपकरणों का उपयोग किया जा सकता है - उस स्थिति में आप एक यूनिट टेस्ट धावक का उपयोग करके स्वीकृति परीक्षण लिख रहे हैं। यूनिट परीक्षण बहुत विशेष रूप से परीक्षण हैं जो तर्क के एक छोटे से टुकड़े पर ध्यान केंद्रित करते हैं, गति के लिए बाकी सब से अलग (ताकि आप उन्हें अक्सर चला सकें और नई बग पर तेजी से प्रतिक्रिया प्राप्त कर सकें)।
टीडीडी विकास के पहले परीक्षण मामलों को लिखने का दृष्टिकोण है जैसा आपने कहा था और फिर डेवलपर परीक्षण मामलों को पारित करने के लिए कोड लिखता है। यूनिट टेस्टिंग एक शब्द है जिसका इस्तेमाल सिस्टम टेस्टिंग, इंटीग्रेशन टेस्टिंग और एक्सेप्टेंस टेस्टिंग के अलावा अन्य टेढ़े-मेढ़े प्रकार के परीक्षण का वर्णन करने के लिए किया जाता है।
जिस तरह से मैं दोनों को अलग करता हूं, उस पर विचार करने के लिए कि टीडीडी परीक्षण के बारे में कम है, और कोड को डिजाइन करने के बारे में अधिक है। इकाई परीक्षणों का उपयोग अंतिम कोड के लिए उम्मीदों को निर्धारित करने के लिए किया जाता है। जब अंतिम कोड लिखा जाता है, और परीक्षण (विनिर्देश) पास करता है, तो आपके पास कोड होता है जिसे परीक्षणों का उपयोग करके बनाया गया था।
सभी उत्कृष्ट उत्तर। मैं केवल उस इकाई परीक्षण को 'इकाई' के एक छोटे घटक के रूप में मानता है, जबकि टीडीडी एकीकरण और स्वीकृति परीक्षणों को शामिल करता है।
(कुछ टीडीडी वेरिएंट 'यूनिट' को वांछित कार्यक्षमता की दिशा में सबसे छोटा वृद्धिशील कदम मानते हैं ...)