इकाई परीक्षण के आयोजन का मेरे वर्तमान रास्ता निम्नलिखित करने पर निर्भर करता:इकाई परीक्षणों को व्यवस्थित करने के लिए और एक दुःस्वप्न को दोबारा नहीं बनाते?
- प्रत्येक परियोजना इकाई परीक्षण के साथ अपने स्वयं के समर्पित परियोजना है। एक परियोजना
BusinessLayer
के लिए,BusinessLayer.UnitTests
परीक्षण प्रोजेक्ट है। - प्रत्येक कक्षा के लिए मैं परीक्षण करना चाहता हूं, परीक्षण परियोजना में एक अलग टेस्ट क्लास है जो बिल्कुल उसी फ़ोल्डर संरचना में और बिल्कुल उसी नामस्थान में परीक्षण के तहत कक्षा के रूप में रखा गया है। एक नामस्थान
BusinessLayer.Repositories
सेCustomerRepository
कक्षा के लिए, नामस्थानBusinessLayerUnitTests.Repositories
में एक टेस्ट क्लासCustomerRepositoryTests
है।
प्रत्येक टेस्ट क्लास के भीतर विधि सरल नामकरण सम्मेलन MethodName_Condition_ExpectedOutcome
का पालन करें। तो वर्ग CustomerRepositoryTests
कि एक Get
विधि परिभाषित के साथ एक कक्षा CustomerRepository
के लिए परीक्षण में शामिल है ऐसा दिखाई देता है:
[TestFixture]
public class CustomerRepositoryTests
{
[Test]
public void Get_WhenX_ThenRecordIsReturned()
{
// ...
}
[Test]
public void Get_WhenY_ThenExceptionIsThrown()
{
// ...
}
}
यह दृष्टिकोण मुझे काफी अच्छी तरह से सेवा की है, क्योंकि यह वास्तव में सरल कोड के कुछ टुकड़े के लिए परीक्षण का पता लगाने में आता है। विपरीत साइट पर, यह कोड को वास्तव में अधिक कठिन बना देता है, तो यह होना चाहिए:
- जब मैं एक परियोजना को कई छोटे भागों में विभाजित करने का निर्णय लेता हूं, तो मुझे अपनी टेस्ट प्रोजेक्ट को विभाजित करने की भी आवश्यकता होती है।
- जब मैं कक्षा के नामस्थान को बदलना चाहता हूं, तो मुझे टेस्ट क्लास के नामस्थान (और फ़ोल्डर संरचना) को भी बदलना होगा।
- जब मैं किसी विधि का नाम बदलता हूं, तो मुझे सभी परीक्षणों के माध्यम से जाना होगा और नाम भी बदलना होगा। निश्चित रूप से, मैं खोज & का उपयोग कर सकता हूं, लेकिन यह बहुत विश्वसनीय नहीं है। अंत में, मुझे अभी भी मैन्युअल रूप से परिवर्तनों की जांच करने की आवश्यकता है।
वहाँ इकाई परीक्षण है कि अभी भी मुझे एक ही समय में जल्दी से एक विशिष्ट कोड के लिए परीक्षण का पता लगाने का और पुनर्रचना की ओर ही अधिक उधार देने की अनुमति होगी के आयोजन के कुछ चालाक रास्ता नहीं है?
वैकल्पिक रूप से, वहाँ कुछ, उह, शायद दृश्य स्टूडियो विस्तार है, कि अनुमति होगी मुझे किसी भी तरह कहना है कि "अरे, इन परीक्षण कर रहे हैं कि विधि के लिए है, इसलिए जब विधि परिवर्तन के नाम पर है, तो कृपया दयालु और परीक्षण भी बदलते हैं "? ईमानदार होने के लिए, मैं गंभीरता से कुछ लिखने पर विचार कर रहा हूं :)
आप अपने परीक्षण विधियों का नाम कैसे देते हैं? क्या वे आपके द्वारा परीक्षण की जा रही विधि का नाम रखते हैं? –
@ UfukHacıoğulları हां, वे करते हैं। प्रश्न में मैं इन नामों का पालन करने वाले सटीक सम्मेलन का जिक्र करता हूं। –