मैं उसी तरह (हाथ से mocks लेखन) शुरू किया और अब तक मुझे लगभग पूरी तरह से EasyMock में स्विच।
मुझे लगता है कि EasyMock का उपयोग आमतौर पर तेज़ और अधिक लचीला दोनों होता है।
आम तौर पर पहली बार मुझे एक नकली की ज़रूरत होती है, मैं इसे EasyMock के साथ कोड की कुछ पंक्तियों में रख सकता हूं, जबकि हाथ से मुझे आवश्यक इंटरफ़ेस को लागू करने की आवश्यकता है (पर्याप्त मेला, यह आईडीई द्वारा उत्पन्न किया जा सकता है IntelliJ) और उसके बाद आवश्यक प्रतिक्रिया उत्पन्न करने के लिए आवश्यक कोड जोड़ें और/या कॉल के प्रभावों को समझने की अनुमति दें।
ठीक है, कोई कह सकता है, यह केवल एक बार की लागत है। अगली बार जब मैं हाथ से लिखित नकली खुशी से पुन: उपयोग कर सकता हूं ... मैंने पाया कि अक्सर यह मामला नहीं है। एक और परीक्षण में मुझे अलग-अलग व्यवहार के साथ एक ही कक्षा के एक नकली की आवश्यकता हो सकती है। जैसे विभिन्न विधियों को बुलाया जाता है, और/या विभिन्न परिणाम की उम्मीद है। एक विशिष्ट मामला तब होता है जब नकली एक परीक्षण मामले में अपवाद फेंकने की उम्मीद है, लेकिन दूसरे में नहीं। ठीक है, मैं इसमें कुछ पैरामीटर जोड़ सकता हूं जो व्यवहार को गतिशील रूप से नियंत्रित करता है। फिर अगले परीक्षण के लिए, अधिक व्यवहार को नियंत्रित करने के लिए कुछ और पैरामीटर ... इसलिए मैं एक और अधिक जटिल नकली कार्यान्वयन के साथ समाप्त होता हूं, जो कि अधिक यूनिट परीक्षणों के लिए निर्भरता है - जो अनजाने में पुराने परीक्षणों को तोड़ने का जोखिम भी दर्शाता है।
इसके विपरीत, EasyMock के साथ मैं प्रत्येक परीक्षण के लिए स्वतंत्र रूप से अपने मैक्स को कॉन्फ़िगर कर सकता हूं। इस प्रकार व्यवहार को इकाई परीक्षण कोड के भीतर स्पष्ट रूप से नियंत्रित और दृश्यमान किया जाता है, और दुष्प्रभावों का कोई खतरा नहीं होता है।
उल्लेख नहीं है कि EasyMock के साथ आप यह सत्यापित कर सकते हैं कि आवश्यक विधियों में आवश्यक विधियों को बुलाया जाता है, यदि आपको (और मैं करता हूं, हर अब और फिर) की आवश्यकता होती है। हाथ से इसे लागू करना (विशेष रूप से एक सामान्य फैशन में) गर्दन में काफी दर्द होगा, बिना किसी अतिरिक्त लाभ के।
स्रोत
2010-05-04 12:13:59
इसके अलावा, http://stackoverflow.com/questions/1717107/why-do-we-need-mocking-frameworks – Finglas