2011-03-10 15 views
16

वे दोनों एक ही काम करते हैं - आप दूसरे को वरीयता में क्यों इस्तेमाल करेंगे?मॉकिटो का उपयोग करते समय नकली() और स्टब() के बीच क्या अंतर है?

org.mockito.Mockito.stub() 
org.mockito.Mockito.mock() 
+11

स्टब विधि बहिष्कृत है, दस्तावेज़ों की जांच करें। एक विधि कॉल को रोकने का नया तरीका एंडी दिखाता है। – Augusto

+0

आह ठीक है - धन्यवाद, यह और अधिक समझ में आता है! – Tom

+0

@ अगस्टो कोई विचार क्यों 'स्टब' को बहिष्कृत किया गया था? मैं सिर्फ उत्सुक हूं कि महत्वपूर्ण अंतर क्या हैं। मैंने प्रोजेक्ट की मेलिंग सूची पर कुछ खोजने की कोशिश की लेकिन यह इतना आसान नहीं है। – toniedzwiedz

उत्तर

15

आप यह सुनिश्चित करने के लिए एक नकली वस्तु का उपयोग कर सकते हैं कि आपने इसे अपेक्षित तरीके से बुलाया है। मॉकिटो में, मॉक ऑब्जेक्ट्स स्वचालित रूप से स्टब्स होते हैं, और सत्यापन स्पष्ट रूप से होता है।

Mockito के "Why do we need another mocking framework?" से

:

Separation of stubbing and verification. Should let me code in line with intuition: 
stub before execution, selectively verify interactions afterwards. I don’t 
want any verification-related code before execution. 

आप इससे पहले कि वे कहा जाता है कॉल के व्यवहार ठूंठ कर सकते हैं। उदाहरण (Mockito मुख पृष्ठ से) के लिए:

when(mockedList.get(0)).thenReturn("first"); 

आप मज़ाक उड़ाया वस्तुओं के साथ बातचीत के बाद वे कहा जाता है की पुष्टि कर सकते हैं। उदाहरण के लिए:

verify(mockedList).add("one"); 
+0

क्षमा करें - मेरा मतलब है, मैंने शीर्षक और प्रश्न अपडेट किया है। – Tom

+1

मैंने इस उत्तर को स्वीकार कर लिया है क्योंकि यह उपयोगी जानकारी है लेकिन मेरे प्रश्न का असली जवाब यह है कि अगस्तो-स्टब() द्वारा दिया गया है। – Tom

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