2010-12-15 6 views
6

कोड से पहले परीक्षण लिखने के लिए, आपको कोड के साथ इंटरफ़ेस करने का एक तरीका होना चाहिए। टेस्ट समय से पहले इंटरफ़ेस को परिभाषित करते हैं ताकि परीक्षण केवल लिखे जा सकें।टीडीडी मानता है कि इंटरफेस पहले ही परिभाषित हैं; सामना कैसे करें?

लेकिन अक्सर एक अच्छे कार्यान्वयन के विकास में अच्छे अंतर-घटक इंटरफेस के सेट का आविष्कार करना, इन इंटरफेस को कई बार ट्विक करना और रीमेक करना शामिल है। इसके दौरान आप या तो टेस्ट कोड के अच्छे भाग को फिर से लिखना जारी रखते हैं, या परीक्षण के पीछे परीक्षणों को पीछे छोड़ने की अनुमति देते हैं।

क्या इसे कम करने के लिए कोई सर्वोत्तम अभ्यास है?

+2

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

उत्तर

14

यह पूरे लाल-हरे-रिफैक्टर लूप की तरह लगता है। ऐसा कहने के लिए, टीडीडी - इंटरफेस के इस पुनर्लेखन के बारे में है। यह उन्हें दुबला और बिंदु पर रखता है। एक बार जब आप टीडीडींग की लटक लेते हैं, और आप अपने परीक्षण इंटरफ़ेस उन्मुख लिखते हैं और अपनी ऑब्जेक्ट्स को छोटा रखते हैं तो आपको तब तक बहुत कुछ नहीं दिखना चाहिए जब तक कि आप कुछ अवांछित नहीं हो जाते और अनुकूल होना चाहिए, जो चुस्त होने का मुद्दा है (जो है उम्मीद है कि आप टीडीडींग क्यों कर रहे हैं)

ऐसा लगता है कि आप एक ही समय में पूरे इंटरफेस को परिभाषित कर रहे हैं। जो गलत होगा। एक परीक्षण को इंटरफ़ेस में एक फ़ंक्शन उत्पन्न करना चाहिए, और यह अपेक्षित व्यवहार है। आपका इंटरफ़ेस टेस्ट-सूट के साथ बढ़ेगा, जिससे किसी भी बैक-पैचिंग को कम किया जा सकेगा।

0

मैं @Per Fagrell -s "इंटरफेस समय के साथ बढ़ेगा" से सहमत हूं।

वैकल्पिक: आप कैसे के बारे में विभिन्न पहलुओं के लिए multible इंटरफेस या उप-सुविधाएँ

5

बस के रूप में आप परीक्षण के रूप में अगर कोड आप परीक्षण कर रहे हैं पहले से ही लिखा गया है, आप कर सकते हैं लिखने को परिभाषित व्यापक कार्यक्षमता के साथ businessclasses बना रहे हैं तो (और चाहिए) उन्हें लिखें जैसे इंटरफ़ेस पहले से ही लिखा गया था। यह डिज़ाइन भाग - सबसे महत्वपूर्ण हिस्सा - टेस्ट-संचालित डिज़ाइन। आप जानते हैं कि परीक्षण के तहत आपकी कक्षा से आप किस कार्यक्षमता के बारे में पूछ रहे हैं; परीक्षण लिखें जैसे कि कार्यक्षमता पहले से मौजूद थी। आपके परीक्षण में अब आपके द्वारा उपयोग किए जाने वाले नाम और पैरामीटर; आपके लिए स्वाभाविक रूप से क्या होता है, कोड और इंटरफ़ेस का परीक्षण करने वाले ग्राहक के रूप में सोचते हैं; ये तत्व आपकी कक्षा और उसके इंटरफेस के डिजाइन में प्रमुख रूप से विशेषता रखते हैं।

0

असफल इकाई परीक्षण न केवल चेक विफल रहा है। असफल यूनिट परीक्षण संकलन को असफल परीक्षण के रूप में भी माना जा सकता है। इसलिए, अपने यूनिट परीक्षण लिखें क्योंकि इंटरफेस वहां हैं।

टीडीडी - परीक्षण संचालित डिज़ाइन - डिज़ाइन का अर्थ इंटरफेस को बदलना है।

+0

टीडीडी और लेखन इकाई परीक्षण * नहीं * समान हैं। –

संबंधित मुद्दे