2010-06-25 12 views
6

मैं बीडीडी में खरीदना शुरू कर रहा हूं। असल में, जैसा कि मैं इसे समझता हूं, आप परिदृश्य लिखते हैं जो कुछ कहानी के लिए स्वीकृति मानदंडों का वर्णन करता है। आप कक्षाओं के स्थान पर मैक्स का उपयोग करके, बाहरी रूप से सरल परीक्षणों से शुरू करते हैं, जिन्हें आप अभी तक लागू नहीं करते हैं। जैसे ही आप प्रगति करते हैं, आपको वास्तविक कक्षाओं के साथ मोक्स बदलना चाहिए। Introduction to BDD से:बीडीडी और कार्यात्मक परीक्षण

सबसे पहले, टुकड़े क्रेडिट या के लिए एक कार्ड मान्य होना में होने के लिए एक खाता सेट करने mocks का उपयोग करके लागू कर रहे हैं। ये कार्यान्वयन व्यवहार के लिए शुरुआती अंक बनाते हैं। के रूप में आप आवेदन को लागू, गिवेंस और परिणामों, वास्तविक कक्षाएं आप को लागू किया है उपयोग करने के लिए बदल रहे हैं तो समय परिदृश्य पूरा हो गया है, वे है कि उचित एंड-टू-एंड कार्यात्मक परीक्षण हो गया है।

मेरा प्रश्न है: जब आप किसी परिदृश्य को कार्यान्वित करना समाप्त करते हैं, तो क्या आपके द्वारा उपयोग किए जाने वाले सभी वर्गों को एकीकरण परीक्षणों की तरह वास्तविक होना चाहिए? उदाहरण के लिए, यदि आप डीबी का उपयोग करते हैं, तो क्या आपका कोड वास्तविक (लेकिन हल्के वजन में) डीबी को लिखना चाहिए? अंत में, क्या आपके पास अपने अंत-से-अंत परीक्षणों में कोई झटका होना चाहिए?

उत्तर

3

अच्छा, यह निर्भर करता है :-) जैसा कि मैं समझता हूं, बीडीडी द्वारा उत्पादित परीक्षण अभी भी यूनिट परीक्षण हैं, इसलिए आपको डीबी जैसे बाहरी कारकों पर निर्भरता को खत्म करने के लिए मोक्स का उपयोग करना चाहिए।

पूर्ण रूप से एकीकरण/कार्यक्षमता परीक्षणों में, आपको स्पष्ट रूप से पूरे उत्पादन प्रणाली के खिलाफ किसी भी नकल के बिना परीक्षण करना चाहिए।

2

एकीकरण परीक्षण में मॉड्यूल के बाहर कोड/घटकों को नकली करने के लिए स्टब्स/मैक्स हो सकते हैं जिन्हें आप एकीकृत कर रहे हैं।

हालांकि, आईएमएचओ एंड-टू-एंड टेस्ट का मतलब है कि रास्ते में कोई स्टब्स/मैक्स नहीं बल्कि उत्पादन कोड होना चाहिए। या दूसरे शब्दों में - यदि मोजे मौजूद हैं - यह वास्तव में अंत तक परीक्षण नहीं है।

0

मैं पीटर और ratkok से सहमत हूं। मुझे लगता है कि आप हमेशा के लिए मॉक्स रखो, तो आप हमेशा इकाई परीक्षण है।

अलग-अलग, इसके अलावा एकीकरण परीक्षण (कोई मैक्स, डीबी आदि का उपयोग आदि) के लिए उपयुक्त है।

आप कभी-कभी सट्टेबाजों को सहायक भी ढूंढ सकते हैं (निर्भर-ऑन कोड (डीओसी) का एक टुकड़ा, लेकिन दूसरा नहीं)।

0

मैं हाल ही में बीडीडी और विशेष रूप से जेबीहेव में देख रहा हूं। मैं बहुत सारे झरने, समारोह उन्मुख लोगों के साथ काफी बड़े उद्यमों में काम करता हूं। मैं बीडीडी को व्यवसायों के मामलों का उपयोग करने के तरीके के रूप में देख रहा हूं और फिर सीधे उन परीक्षणों में बदल जाता हूं जो डेवलपर या तो इकाई परीक्षण या एकीकरण परीक्षण में बदल सकते हैं।

बीडीडी मुझे डेवलपर्स को व्यवसाय की इच्छा के बारे में समझने में मदद करने का एक तरीका नहीं है, बल्कि यह भी सुनिश्चित करने का एक तरीका है कि उन आवश्यकताओं को सटीक रूप से दर्शाया गया है।

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

2

हां, जब तक कोई परिदृश्य चलता है, आदर्श रूप से आपके सभी वर्ग वास्तविक होंगे। एक परिदृश्य उपयोगकर्ता के दृष्टिकोण से व्यवहार का उपयोग करता है, इसलिए सिस्टम को उपयोगकर्ता के रूप में देखना चाहिए।

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

हालांकि हम अभी भी यूनिट परीक्षणों में मोक्स रखते हैं।

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

आपको "क्या करना चाहिए" के लिए, सही कोड लिखना सही कोड लिखने से कहीं अधिक कठिन है। इससे पहले कि मैं चिंता करता हूं कि हितधारकों और उपयोगकर्ताओं से प्रतिक्रिया प्राप्त करने के लिए मुझे अपने परिदृश्यों का उपयोग करने की चिंता करने से पहले चिंता है कि मेरा पर्यावरण उत्पादन वातावरण के करीब कितना करीब है। जब आप उस बिंदु पर पहुंच जाते हैं जहां परिवर्तन हर दो हफ्तों में तैनात किए जाते हैं, तो निश्चित रूप से, आप शायद अधिक निश्चितता चाहते हैं कि आप किसी भी बग को पेश नहीं कर रहे हैं।

गुड लक!

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