मैं हाल ही में अपने परीक्षणों के नामकरण के लिए निम्नलिखित सम्मेलन के साथ आया, उनकी कक्षाओं और उनके विवरणों को अधिकतम करने के लिए परियोजनाएं युक्त:
आइए कहते हैं कि मैं Settings
एक प्रोजेक्ट में MyApp.Serialization
नामस्थान में कक्षा का परीक्षण कर रहा हूं ।
पहले मैं MyApp.Serialization.Tests
नेमस्पेस के साथ एक टेस्ट प्रोजेक्ट बनाऊंगा।
इस परियोजना के भीतर और निश्चित रूप से नामस्थान मैं एक वर्ग बनाऊंगा जिसे IfSettings
( IfSettings.cs के रूप में सहेजा गया है )।
कहते हैं कि मैं SaveStrings()
विधि का परीक्षण कर रहा हूं । -> मैं परीक्षण का नाम दूंगा CanSaveStrings()
।
जब मैं यह परीक्षण चलाता हूं तो यह निम्नलिखित शीर्षक दिखाएगा:
MyApp.Serialization.Tests.IfSettings.CanSaveStrings
मुझे लगता है कि यह मुझे बहुत अच्छी तरह से बताता है कि यह क्या परीक्षण है।
बेशक यह उपयोगी है कि अंग्रेजी में संज्ञा "टेस्ट" क्रिया "परीक्षण" के समान है।
परीक्षणों के नामकरण में आपकी रचनात्मकता की कोई सीमा नहीं है, ताकि हम उनके लिए पूर्ण वाक्य शीर्षक प्राप्त कर सकें।
आमतौर पर टेस्ट नामों की शुरुआत एक क्रिया से करनी होगी।
उदाहरणों में शामिल:
- पता लगाता है (उदाहरण के लिए
DetectsInvalidUserInput
)
- फेंकता (जैसे
ThrowsOnNotFound
)
- विल (जैसे
WillCloseTheDatabaseAfterTheTransaction
)
आदि।
एक अन्य विकल्प "अगर" के बजाय "कि" का उपयोग करना है।
उत्तरार्द्ध मुझे हालांकि कीस्ट्रोक्स बचाता है और अधिक सटीक रूप से वर्णन करता है कि मैं क्या कर रहा हूं, क्योंकि मुझे नहीं पता है कि परीक्षण किया गया व्यवहार मौजूद है, लेकिन अगर यह है तो परीक्षण कर रहा हूं ।
[ संपादित करें ]
थोड़ी देर के लिए नामकरण सम्मेलन से ऊपर का उपयोग करने के बाद, मैंने पाया है, कि यदि उपसर्ग भ्रामक हो सकता है, तो इंटरफेस के साथ काम करते समय। यह सिर्फ इतना होता है, कि परीक्षण वर्ग IfSerializer.cs "ओपन फाइल टैब" में इंटरफ़ेस ISerializer.cs के समान दिखता है । यह बहुत कष्टप्रद हो सकता है जब परीक्षणों के बीच आगे पीछे, परीक्षण किया जा रहा वर्ग और इसका इंटरफ़ेस। नतीजतन मैं अब चुनते हैं यही कारण है कि अधिक हैं उपसर्ग के रूप में।
इसके अतिरिक्त अब मैं केवल अपने परीक्षण वर्गों में विधियों के लिए उपयोग करता हूं क्योंकि इसे कहीं और सर्वोत्तम अभ्यास नहीं माना जाता है - मेरे परीक्षण विधि नामों में शब्दों को अलग करने के लिए "_":
[Test] public void detects_invalid_User_Input()
मुझे यह पढ़ने में आसान लगता है।
[ अंत संपादित करें ]
मुझे आशा है कि यह कुछ और विचारों को जन्म देता है, क्योंकि मैं बहुत महत्व के परीक्षणों के नामकरण पर विचार करता हूं क्योंकि यह आपको बहुत समय बचा सकता है जो अन्यथा यह समझने की कोशिश कर रहा होगा कि परीक्षण क्या कर रहे हैं (जैसे एक विस्तारित अंतराल के बाद किसी परियोजना को फिर से शुरू करना) ।