2009-04-01 6 views
8

में उपयोग करते हुए इकाई परीक्षण लिखने के लिए बनाम परीक्षण का वर्णन करने के, मुझे पता है यह परीक्षण तरीकों ऐसालेखन लंबे परीक्षण विधि के नाम कोड प्रलेखन

public void Can_User_Authenticate_With_Bad_Password() 
{ 
... 
} 

देखने लिखने के लिए यह है कि क्या परीक्षण देखने के लिए आसान बनाता है जबकि बहुत लोकप्रिय है के लिए परीक्षण कर रहा है, मुझे लगता है कि यह बदसूरत लग रहा है और यह स्वत: जेनरेट किए गए दस्तावेज (जैसे sandcastle या javadoc) में अच्छा प्रदर्शन नहीं करता है।

मुझे यह देखने में दिलचस्पी है कि लोग नामकरण स्कीमा का उपयोग करने के बारे में क्या सोचते हैं, जिसकी जांच की जा रही विधि और अंडरस्कोर परीक्षण और फिर परीक्षण संख्या है। फिर परीक्षण किए जा रहे परीक्षण का वर्णन करने के लिए एक्सएमएल कोड दस्तावेज़ (.net) या जावाडोक टिप्पणियों का उपयोग करना।

/// <summary> 
/// Tests for user authentication with a bad password. 
/// </summary> 
public void AuthenticateUser_Test1() 
{ 
... 
} 

इस मैं आसानी से एक साथ क्या तरीकों वे परीक्षण कर रहे हैं द्वारा समूह मेरे परीक्षण कर सकते हैं करने से, मैं कैसे मैं एक दिया विधि के लिए है परीक्षण कर सकते हैं, और मैं अभी भी क्या परीक्षण किया जा रहा है का पूरा विवरण देख सकते हैं।

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

उत्तर

1

Can_User_Authenticate_With_Bad_Password 

बदलने के

AuthenticateDenieTest 
AuthenticateAcceptTest 

और नाम सूट कुछ की तरह User

2

व्यक्तिगत रूप से मैं लंबे विधि नामों का उपयोग करना पसंद करता हूं। ध्यान रखें कि आप, अभिव्यक्ति के अंदर विधि नाम हो सकता है के रूप में: मैं "लंबे समय के नाम" संस्करण पसंद करते हैं

Can_AuthenticateUser_With_Bad_Password() 
19

- हालांकि केवल क्या होता है वर्णन करने के लिए। यदि परीक्षण को का विवरण चाहिए तो ऐसा क्यों होता है, मैं इसे एक टिप्पणी में रखूंगा (यदि उपयुक्त हो तो बग संख्या के साथ)।

लंबे नाम के साथ, यह बहुत स्पष्ट है कि आपको मेल मिलने पर क्या गलत हो गया है (या जो भी) आपको बता रहा है कि कौन से परीक्षण विफल हुए हैं।

मैं क्या यह हालांकि करना चाहिए के मामले में यह लिखना होगा:

LogInSucceedsWithValidCredentials 

LogInFailsWithIncorrectPassword 

LogInFailsForUnknownUser 

मैं तर्क है कि यह स्वत: जनरेट दस्तावेज में बुरा लग रहा है नहीं खरीदते हैं - तुम क्यों परीक्षणों पर JavaDoc चल रहे हैं पहली जगह में? मैं नहीं कह सकता कि मैंने कभी ऐसा किया है, या जेनरेटेड दस्तावेज चाहता था। यह देखते हुए कि परीक्षण विधियों में आम तौर पर कोई पैरामीटर नहीं होता है और कुछ भी वापस नहीं करते हैं, यदि विधि का नाम उन्हें उचित रूप से वर्णित कर सकता है, तो आपको वह सारी जानकारी चाहिए जो आपको चाहिए। परीक्षण धावक परीक्षणों को सूचीबद्ध करने में सक्षम होना चाहिए, या आईडीई आपको दिखा सकता है कि क्या उपलब्ध है। मुझे लगता है कि एचटीएमएल के माध्यम से नेविगेट करने से अधिक सुविधाजनक - ब्राउज़र में "टाइप टाइप" नहीं है जो मुझे नाम के प्रत्येक शब्द के पहले अक्षर टाइप करने देता है, उदाहरण के लिए ...

+0

हम अपने सभी कोड –

+0

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

+0

तो टेस्ट नाम को प्रतिबिंबित करें कि क्या परीक्षण किया जा रहा है :) निश्चित रूप से यह उत्पन्न होने के लिए प्रलेखन के एक अतिरिक्त अतिरिक्त सेट की आवश्यकता से बेहतर है। –

2

मैं छोटे, अधिक सुझाव देता हूं केंद्रित (परीक्षण) कक्षाएं।

आप javadoc परीक्षण क्यों करना चाहते हैं?

+0

यह पढ़ने के लिए बहुत आसान बनाता है हालांकि इसका परीक्षण किया जा रहा है, हम कोड हमारे सभी कोड टिप्पणी करते हैं। –

5

प्रलेखन अपने परीक्षण धावक में दिखाई है के बारे में क्या? यदि नहीं, तो इसके बजाय लंबे, वर्णनात्मक नामों का उपयोग करने का एक अच्छा कारण नहीं है।

व्यक्तिगत रूप से मैं लंबे नाम पसंद करता हूं और शायद ही कभी परीक्षणों में टिप्पणियां जोड़ने की आवश्यकता को देखता हूं।

0

एक समूह के रूप में हम एक संकर इस

/// <summary> 
/// Tests for user authentication with a bad password. 
/// </summary> 
public void AuthenticateUser_Test1_With_Bad_Password() 
{ 
... 
} 

तरह स्कीमा नामकरण करने के बारे में कैसा महसूस करते हैं और हम दोनों का सबसे अच्छा मिलता है।

4

मैंने संबंधित विषय पर अपना शोध प्रबंध किया है, इसलिए यहां मेरे दो सेंट हैं: जब भी आप अपने विधि हस्ताक्षर में नहीं है, तो कुछ ऐसा बताने के लिए प्रलेखन पर भरोसा करते हैं, तो आप इतना बड़ा जोखिम ले रहे हैं कि कोई भी पढ़ नहीं पाएगा प्रलेखन।

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

मैं आपके हस्ताक्षर में प्रासंगिक सब कुछ संदेश देने की दृढ़ता से अनुशंसा करता हूं।

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