2011-02-06 12 views
11

मैं एएसपी.नेट एमवीसी के साथ व्यवहार संचालित विकास सीख रहा हूं और स्टीव सैंडर्सन से a post पर आधारित, समझता हूं कि बीडीडी का मतलब निम्न परीक्षण प्रकारों से हो सकता है: कोड & यूआई इंटरैक्शन की व्यक्तिगत इकाइयां। this post में कुछ समान उल्लेख किया गया है। यदि मुझे यूनिट और एकीकरण परीक्षण दोनों चाहिए तो क्या मुझे दो अलग-अलग परीक्षण ढांचे की आवश्यकता है?मैं एएसपी.नेट एमवीसी में बीडीडी शैली में यूनिट और एकीकरण परीक्षण कैसे कर सकता हूं?

  • इकाई परीक्षण खजाने, नियंत्रक, & सेवाओं एक संदर्भ/विनिर्देश ढांचे, MSpec की तरह इस्तेमाल करते हैं। इसके साथ परीक्षण के परिणाम विकास टीम के लिए उपयोगी होंगे।

  • वाटिन के साथ SpecFlow जैसे किसी दिए गए/कब/फिर ढांचे का उपयोग करके पूर्ण व्यवहार (एकीकरण) का परीक्षण करना। इस परीक्षण के परिणाम मेरे ग्राहक के लिए उपयोगी होंगे।

वीडियो मैं केवल खजाने, नियंत्रक, आदि के व्यवहार का परीक्षण बिना संस्थाओं के व्यवहार का परीक्षण करने के लिए सीमित कर दिया गया है BDD का उपयोग करने पर अब तक देखा है ... वहाँ एक नमूना परियोजना जहाँ मैं दोनों को देख सकते हैं है एक बीडीडी दृष्टिकोण का उपयोग कर स्वचालित इकाई और एकीकरण परीक्षण?

उत्तर

9

व्यक्तिगत रूप से मैं विशिष्ट विशिष्ट परीक्षण (यानी "उपयोगकर्ता नई कंपनी रिकॉर्ड बनाता है") बनाने के लिए स्पेकफ़्लो का उपयोग करता हूं, जहां मैं कभी-कभी (लेकिन हमेशा नहीं) वाटिन का उपयोग करूंगा। मेरे respositories, या सेवा कक्षाओं का परीक्षण करने के लिए, मैं यूनिट के साथ इकाई/एकीकरण परीक्षण का उपयोग करेंगे। एकीकरण परीक्षण तब होता है जब मुझे परीक्षण के दौरान डेटाबेस से बात करने की आवश्यकता होती है, यूनिट तब होती है जब मैं बाहरी इंटरैक्शन के बिना परीक्षण के तहत लक्ष्य ऑब्जेक्ट में कोड चलाता हूं।

मैं कहूंगा कि आपको अपने गैर यूआई परीक्षणों के लिए बीडीडी ढांचे का उपयोग करने की आवश्यकता नहीं है। यदि आप चाहें तो आप कर सकते हैं, लेकिन इस पर कोई कठोर और तेज़ नियम नहीं है। यदि आप ऐसा करने जा रहे हैं, तो मैं आपके परीक्षणों के लिए एक और परियोजना बनाने की अत्यधिक अनुशंसा करता हूं। उन्हें विभाजित रखना एक अच्छा विचार है, फिर एक परीक्षण में सभी परीक्षणों को मिलाकर। आप उन्हें नाम दे सकते हैं:

MyProject.Tests.Features < - BDD SpecFlow परीक्षण के लिए।

MyProject.Tests.Integration < - परीक्षणों के लिए जो बाहरी संसाधन यानी डेटाबेस तक पहुंचते हैं।

MyProject.Tests.Unit

आप दो BDD चौखटे का उपयोग करना चाहते नहीं कर रहे हैं, तो आप अभी भी एक BDD तरह से MSTest/NUnit उपयोग कर सकते हैं। उदाहरण के लिए, this ब्लॉग आलेख एक अच्छा नामकरण सम्मेलन का वर्णन करता है जो बीडीडी के नजदीक है, लेकिन इसका उद्देश्य एमएसटीएस्ट/एनयूनीट यूनिट परीक्षणों के लिए है। जब आप अपनी परीक्षण चीजें भंडारों की तरह करते हैं तो आप इसे अपने गैर स्पीकफ़्लो परीक्षणों के लिए उपयोग कर सकते हैं।

सारांश में - आपको अपने परीक्षण में SpecFlow और MSpec का उपयोग करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो मैं अलग-अलग परीक्षण परियोजनाओं की अनुशंसा करता हूं।

+0

मैं सहमत हूं। यह बाहरी-इन/यूआई परीक्षण है जो परिदृश्य के रूप में निर्दिष्ट हैं, और इसलिए, SpecFlow या कुछ समान की आवश्यकता है। मैं नहीं देखता कि इकाई-परीक्षण सामान्य से अलग तरीके से क्यों किया जाना चाहिए। – Jonathan

2

मैं आम तौर पर जेसन द्वारा पोस्ट किए गए सहमत हूं।

आप अपने चश्मे को दो श्रेणियों, सिस्टम/एकीकरण और इकाई-स्तरीय परीक्षणों में विभाजित करना चाहते हैं। आप किसी भी ढांचे के साथ दोनों श्रेणियों का वर्णन कर सकते हैं, लेकिन ध्यान रखें कि कोड-केवल दृष्टिकोण (एनयूनीट, एमएसपीसी, इत्यादि) को व्यवसाय विश्लेषक को सी # लिखने में सक्षम होने की आवश्यकता होती है। यदि आप विश्लेषकों और उपयोगकर्ताओं को लेखन विनिर्देशों में शामिल करना चाहते हैं तो SpecFlow/Gherkin बेहतर दृष्टिकोण हो सकता है।चूंकि सिंटैक्स और नियम (दिए गए, कब, फिर) समझने में आसान हैं और उपयोगकर्ता के परिप्रेक्ष्य से विनिर्देश लिखना आसान प्रशिक्षण के बाद कम करना आसान है। यह संचार अंतर को ब्रिज करने और उपयोगकर्ताओं को आपकी टीम की सर्वव्यापी भाषा बनाने में मदद करने के बारे में है।

मैं "अंदरूनी" और "अंदरूनी" दोनों काम करने के विनिर्देशों का समर्थन करने की अनुशंसा करता हूं। आप उपयोगकर्ता/विश्लेषक/उत्पाद स्वामी द्वारा लिखे गए "अंदरूनी" स्पेकफ़्लो विनिर्देश के साथ शुरू कर सकते हैं और वास्तविक कोड लिखने के लिए "अनुचित" से "अनुचित" से अपना रास्ता काम कर सकते हैं। सुविधा का समर्थन करने वाला कोड एमएसपीसी ("अंदरूनी" भाग) जैसे अधिक तकनीकी रूप से उन्मुख ढांचे के साथ टीडीडी का उपयोग करके विकसित किया गया है।

यहां एक भंडार है जो एमएसपीसी का उपयोग दोनों इकाई और एकीकरण परीक्षणों के लिए करता है: https://github.com/agross/duplicatefinder

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