मुझे नियोजित परीक्षण तकनीकों की प्रकृति पर आलेख से असहमत होना है। समाधान एक गेट को नियोजित करता है, यह सत्यापित करने के लिए कि परीक्षण सफल होना चाहिए या मध्यवर्ती चरण में विफल होना चाहिए।
मेरी राय में, Guard Assertions को विशेष रूप से ऐसे परीक्षणों के लिए नियोजित करना बेहतर है (मानते हैं कि परीक्षण लंबे समय तक चलने वाला और जटिल नहीं है, जो स्वयं में एक विरोधी पैटर्न है)। गार्ड-दावे का उपयोग करने से आप निम्न तरीकों से एसयूटी को डिज़ाइन करने के लिए मजबूर कर सकते हैं:
- इस तरीके को निष्पादन या उत्तीर्ण होने के परिणामस्वरूप पर्याप्त जानकारी प्रदान करने के लिए विधि को डिज़ाइन करें। कभी-कभी, ऐसा नहीं किया जा सकता क्योंकि डिजाइनर के इरादे से परिणाम नहीं लौटाया जाता है, और इसके बजाय अपवाद फेंक दिया जाता है (इसे दूसरे मामले में संभाला जा सकता है)।
- एसयूटी डिज़ाइन करें ताकि प्रत्येक महत्वपूर्ण विधि आमंत्रण के बाद state can be verified हो।
लेकिन इससे पहले कि हम ऊपर संभावनाओं पर विचार निम्नलिखित स्निपेट पर एक नज़र फिर से है:
plane.bookAllSeats();
plane.bookPlane(createValidItinerary(), null);
इरादा bookPlane() का परीक्षण करने और उस विधि के निष्पादन के लिए सत्यापित करने के लिए है, तो यह बेहतर है एक स्थिरता में बुक AllSeats() रखने के लिए। मेरी समझ में, पुस्तक आलसीट्स() का आह्वान करने के लिए एसयूटी स्थापित करने के बराबर है यह सुनिश्चित करने के लिए कि बुकप्लेन() का आविष्कार विफल हो जाता है, और इसलिए ऐसा करने के लिए एक स्थिरता होने से अधिक पठनीय परीक्षण किया जाएगा। यदि इरादा अलग है, तो विफलता के मूल कारण को इंगित करने में सहायता के लिए, मैं प्रत्येक संक्रमण के बाद राज्य का परीक्षण करने की सिफारिश करता हूं (जैसा कि मैं सामान्य रूप से कार्यात्मक परीक्षणों में करता हूं)।
स्रोत
2010-09-09 14:25:12
जब मैंने शुरुआत में इसे देखा, तो यह मेरे लिए अजीब लग रहा था। अब जब मैंने प्रयोग किया है, ऐसा लगता है कि वास्तव में ऐसा करना चाहिए जो मैं करने की कोशिश कर रहा हूं। –
टेस्टएनजी ब्रैग ऐसा करने के बारे में नहीं है। – djechlin