2012-12-21 26 views
10

सामान्य प्रश्न यूनिट परीक्षण के लिए एएए के वैकल्पिक पैटर्न हैं? यदि हां, तो कुछ उदाहरण देखने और उनके पेशेवरों और विपक्षों के बारे में सुनना बहुत दिलचस्प होगा।अधिनियम सम्मिलन विकल्प व्यवस्थित करें

और एएए परीक्षण के सरलतम उदाहरण (ग # में, सरलता के लिए वर का प्रयोग करके) के रूप में:

// Arranging 
var annualSalary = 120000M; 
var period = 3; // for a quarter profit 
var calc = new SalaryCalculator(); 

// Acting 
var result = calc.CalculateProfit(annualSalary, period); 

// Assertion 
Assert.IsEqual(40000, result); 

उत्तर

4

से व्यवहार चालित विकास एक और अंकन नहीं है: को देखते हुए - जब - फिर। सी # के लिए उदाहरण SpecFlow और जावास्क्रिप्ट के लिए Jasmin के लिए उदाहरण हैं। दोनों संसाधन इस नोटेशन का उपयोग करने के उदाहरणों से भरे हुए हैं। जीडब्ल्यूटी दृष्टिकोण आमतौर पर एक व्यवहार संचालित विकास और पहलू ओरिएंटेड प्रोग्रामिंग में उपयोग किया जाता है।

+3

मैं सिर्फ इंटरनेट पर कुछ बात जांच की है और वास्तव में यह देखते हुए-जब-तब एक ही व्यवस्था-अधिनियम-जोर की तरह लगता है (उदाहरण के लिए [यह] (http://hadihariri.com/2012/04/11/what-bdd-has-taught-me/))।वे अर्थात् और तार्किक रूप से बहुत समान दिखते हैं। लेकिन कार्यान्वयन परीक्षण के एक पूरी तरह से स्पष्ट गुणकारी तरीके का खुलासा अलग है। अच्छा :) –

9

मुझे ऐसा कुछ पसंद है जो एएए के लिए इतना विकल्प नहीं है, बल्कि एक भिन्नता है। मुझे लगता है कि व्यवस्थित करें (नहीं) -एक्ट-एसेर्ट, लेकिन अन्य ने इसे गार्ड एसेशन कहा है। विचार यह है कि यह सुनिश्चित करना है कि अधिनियम के वांछित परिणाम अधिनियम से पहले पहले से मौजूद नहीं हैं। here की अच्छी चर्चा है।

+0

मैं देख सकता हूं कि इस तकनीक का व्यापक रूप से उपयोग नहीं किया जाता है। क्या आपने कभी इसे अपने वास्तविक विश्व उत्पादन परियोजनाओं में से एक में अभ्यास में रखा है? –

+0

मैंने इसका इस्तेमाल किया है, लेकिन विशेष रूप से अनुशासित फैशन में नहीं। कभी-कभी जब मैं यह सुनिश्चित करना चाहता हूं कि परीक्षण के तहत कार्रवाई स्थिति के बारे में बताती है, कभी-कभी मैं इस तरह अपने परीक्षण लिखूंगा। नियमित नीति के रूप में नहीं। –

+0

यह एक दिलचस्प विचार है; मैं कभी-कभी इसे "अनौपचारिक रूप से" उपयोग करता हूं, जब मुझे लगता है कि परीक्षण की पूर्व शर्त क्या है, यह स्पष्ट करना महत्वपूर्ण है। – Mathias

1

जब आप पैरामीटर परीक्षण का उपयोग कर रहे हैं तो अक्सर आप 'व्यवस्था' या 'दिए गए' भाग को पैरामीटर में ले जा सकते हैं। लेकिन फिर भी, सिद्धांत

4

कुछ शुरुआती मॉकिंग फ्रेमवर्क (कम से कम नेट दुनिया में) ने आपको Record/Replay पैटर्न का उपयोग करने के लिए मजबूर किया है। मैं बल कहता हूं क्योंकि मुझे यह बहुत स्वाभाविक या पठनीय नहीं लगता है और फिर कोई विकल्प नहीं था।

इसने एएए फॉर्म को बढ़ावा देने के अलगाव फ्रेमवर्क की एक नई दौड़ पैदा की, जिसे मैं सबसे अधिक इरादा-खुलासा दृष्टिकोण मानता हूं। इस here के बारे में अधिक जानकारी।

+0

इतिहास से अच्छा स्नैपशॉट। मैं पहले संस्करण से .net प्लेटफॉर्म पर काम कर रहा हूं और मुझे याद नहीं है कि मैंने उन दिनों में उन शुरुआती मॉकिंग फ्रेमवर्कों में से एक का उपयोग किया है या नहीं। मेरे टीम के सदस्यों में से कोई भी कभी काम नहीं करता है। –

0

एक अन्य आम इकाई परीक्षण में इस्तेमाल पैटर्न चार चरण टेस्ट पैटर्न है:

  1. सेटअप
  2. निष्पादित
  3. चेक
  4. कटाव

पहला कदम अनिवार्य रूप से कर रहे हैं एएए पैटर्न में जैसा ही है। हालांकि, मुझे चार चरणों का पैटर्न बेहतर भाषाओं के लिए उपयुक्त लगता है जहां आपको अपने आप को साफ करना होगा, उदाहरण के लिए, सी या सी ++। चरण 4 (टियरडाउन) वह जगह है जहां आप किसी भी आवंटित स्मृति को मुक्त करते हैं, या परीक्षण के लिए बनाए गए ऑब्जेक्ट को नष्ट करते हैं।

ऐसी परिस्थितियों में जहां आप किसी भी स्मृति को आवंटित नहीं करते हैं, या कचरा कलेक्टर डीलोकेशन का ख्याल रखता है, चौथा कदम ज्यादातर समय अप्रयुक्त होता है, इसलिए एएए पैटर्न का उपयोग करने के लिए यह अधिक समझ में आता है।

सी ++ में, उदाहरण के लिए, ऊपर परीक्षण हो सकता है:

// Setup 
int annualSalary = 120000; 
int period = 3; // for a quarter profit 
int result; 
SalaryCalculator calc = new SalaryCalculator(); 

// Execute 
result = calc.CalculateProfit(annualSalary, period); 

// Check 
CHECK_EQUAL(40000, result); 

// Teardown 
delete calc; 
+0

आप इसे व्यवस्थित कर सकते हैं Arrange-Act-Assert-Absterge :) Absterge सफाई के लिए एकमात्र पर्याय था जो कि मुझे मिल सकता था। हो सकता है कि आप disassemble के पक्ष में एक तर्क कर सकते हैं, लेकिन यह सिर्फ धोखा दे रहा है मैं कहूंगा: पी – Sammi