2009-12-02 9 views
27

मैं अपनी परियोजनाओं में अधिक यूनिट परीक्षणों का उपयोग कर रहा हूं और ऑनलाइन जानकारी प्राप्त कर रहा हूं और बहुत सारी शब्दावली से उलझन में हूं। नतीजतन मैं बातचीत और Google खोजों में शायद इन शर्तों का गलत इस्तेमाल कर रहा हूं।इकाई परीक्षण शब्दावली का एक सिंहावलोकन (स्टब बनाम नकली, एकीकरण बनाम बातचीत)?

क्या कोई "नकली" प्रकारों के साथ-साथ परीक्षण प्रकार (इंटरैक्शन बनाम एकीकरण) जैसे सभी यूनिट परीक्षण शर्तों को रेखांकित कर सकता है?

+0

संबंधित: [क्या-अंतर-बीच-फ़ोकिंग-मॉकिंग-एंड-स्टबिंग] (http://stackoverflow.com/questions/346372/whats-the-difference-between-faking-mocking-and-stubbing) – nawfal

उत्तर

45

जब यह मोक्स बनाम नकली बनाम स्टब्स की बात आती है, तो वास्तव में कुछ अलग-अलग तरीके हैं जो लोग उन्हें समझते हैं। मैं आमतौर पर the meanings defined by Martin Fowler उधार:

  1. स्टब वस्तुओं एक वैध प्रतिक्रिया प्रदान करते हैं, लेकिन यह स्थिर है - कोई बात नहीं क्या इनपुट आप में पारित, तो आप हमेशा एक ही प्रतिक्रिया मिल जाएगा।
  2. नकली वस्तुएं असली वस्तु की तरह कार्य करती हैं, लेकिन वे इसके बारे में एक सरल तरीके से जाते हैं - जैसे एक डीएओ जो वास्तविक डेटाबेस की बजाय डेटा स्टोर करने के लिए मानचित्र का उपयोग करता है।
  3. नकली वस्तुओं का उपयोग नकली परीक्षण मामलों में किया जाता है - वे मान्य करते हैं कि उन वस्तुओं पर कुछ विधियों को बुलाया जाता है।

इंटरैक्शन परीक्षण एक सामान्य शब्द है जो इकाई परीक्षणों को संदर्भित करता है जो सुनिश्चित करता है कि वस्तुओं के बीच बातचीत सही है (सुनिश्चित करें कि अपेक्षित विधियों को बुलाया जाता है)। यह राज्य (या शास्त्रीय) परीक्षण का विरोध करता है, जो इस बात पर ध्यान नहीं देता है कि विधियों में क्या होता है, जब तक परिणामी स्थिति सही होती है। इन प्रकार के परीक्षण की तुलना फाउलर के आलेख में की जाती है जिसे मैंने ऊपर लिंक किया था।

Integration testing वास्तव में इकाई परीक्षण का एक पहलू नहीं है, यह इकाई परीक्षणों के ऊपर एक स्तर है। यह विभिन्न इकाइयों को लेता है और सत्यापित करता है कि वे सही तरीके से मिलकर काम करते हैं।

+8

टेस्ट डबल्स की परिभाषा फाउलर नहीं है - वे जेरार्ड मेस्ज़ारोस की उत्कृष्ट पुस्तक "xUnit टेस्ट पैटर्न" से आती हैं, और फाउलर स्वतंत्र रूप से इसे स्वीकार करते हैं। –

5

फाउलर Mocks and Stubs फर्क पर का एक बड़ा काम कोर्स किया लेकिन, मेरे लिए, XUnit Test Patterns पुस्तक संदर्भ है और मैं व्यापक तुलना के लिए Mocks, Fakes, Stubs and Dummies जांचने का सुझाव दूंगा।

हाँ, मुझे पता है, यह भ्रमित है और इसलिए मैं Mocks and Stubs aren't Spies, फिर let’s spy और अंत में Mockito - The New Mock Framework on the Block की जांच करने का सुझाव दूंगा।

परीक्षण के विभिन्न प्रकार के बारे में

, एक सरल व्याख्या हो सकता है (यह एक विस्तृत सूची नहीं है):

  • इकाई परीक्षण: अलगाव
  • एकीकरण में एक भी "इकाई", एक विधि, परीक्षण परीक्षण: कई इकाइयों के एकीकरण का परीक्षण (तरीकों, कक्षाएं, घटक, परतों)
  • कार्यात्मक परीक्षण: (क उपयोगकर्ता के नजरिए से)

एक एंड-टू-एंड परिदृश्य का परीक्षण क्या ये प्रकार उपयोगी और अनन्य नहीं होंगे, वास्तव में उनके पास एक ही इरादा नहीं है।

3

मैंने रॉय ओशरोव द्वारा The Art of Unit Testing पढ़ा है (और दिल से अनुशंसा करते हैं)।वह शब्दावली के सरलीकृत सेट का उपयोग करता है।

अपनी पुस्तक की व्याख्या करने के लिए ...

एकता टेस्ट - कि मौजूदा प्रक्रिया या वस्तु के बाहर तक पहुँच जाता है कुछ और

इंटरेक्शन टेस्ट साथ बातचीत करने के किसी भी परीक्षा - रास्ते में एक परीक्षण कि वस्तुओं को एक साथ काम

राज्य टेस्ट - एक ऑपरेशन द्वारा उत्पादित परिणामों पर एक परीक्षण

नकली - किसी भी स्टैंड में उद्देश्य यह है कि असली बात

स्टब के बजाय प्रयोग किया जाता है - एक स्टैंड में उद्देश्य यह है कि परीक्षण

नकली के तहत एक निर्भरता कोड के लिए आवश्यक प्रदान करता है - एक परीक्षण

ध्यान दें कि यहां स्टब्स और मोक्स दोनों को मॉकिंग फ्रेमवर्क द्वारा प्रदान किया जा सकता है - विकृति इस तकनीक के रूप में उपयोग की जाने वाली तकनीक के बारे में उतनी ही अधिक है।

9

एमएसएन पत्रिका से यह article शर्तों को बताता है और उदाहरणों और कुछ स्रोत कोड के साथ कुछ विस्तार में जाता है।

मूल रूप से इन परीक्षण युगल हैं:

  • डमी - स्टब्स इंटरफेस या आधार वर्ग
  • जासूस के न्यूनतम कार्यान्वयन हैं - - Dummies कोई कार्यान्वयन
  • स्टब शामिल एक जासूस रिकॉर्ड करेगा कि कौन से सदस्यों को बुलाया गया था
  • नकली - अधिक शिकायत पूर्व, एक नकली एक उत्पादन कार्यान्वयन
  • नकली सदृश हो सकता है - एक नकली आमतौर पर गतिशील रूप से एक नकली पुस्तकालय द्वारा बनाई गई है और इसके विन्यास पर निर्भर करता है, एक नकली एक डमी, एक ठूंठ, या एक जासूस की तरह व्यवहार कर सकते हैं
संबंधित मुद्दे