2012-02-15 17 views
8

में नकारात्मक अपेक्षाओं को सेट करें मैं EasyMock को बेहतर समझना चाहता हूं, और इसके साथ काम करना मैं इस प्रश्न के साथ आया हूं।EasyMock

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

मुझे पता है कि सत्यापित करने का डिफ़ॉल्ट व्यवहार दोनों मामलों की जांच कर रहा है: आपकी अपेक्षाएं पूरी की गईं, और कोई अन्य कॉल नहीं की गई; लेकिन परीक्षण में कोई रिकॉर्ड नहीं है कि एक निश्चित विधि को नहीं कहा जाता है, दूसरे शब्दों में, यदि आप इस विधि पर अपेक्षा निर्धारित करते हैं और इसे नहीं कहा जाता है, तो आपका परीक्षण विफल हो जाएगा (यह पुष्टि करना कि आपका कार्यान्वयन ठीक से व्यवहार कर रहा है!) ।

क्या यह सेट अप करने के लिए EasyMock का उपयोग करने का कोई तरीका है? मुझे प्रलेखन में कुछ भी नहीं मिला।

आपके ध्यान के लिए धन्यवाद, और आपकी मदद के लिए अग्रिम में!

उत्तर

11
तरह से काम करता है EasyMock

इस तरह है:

  1. इंटरफेस के लिए एक नकली वस्तु आप अनुकरण करना चाहते हैं,
  2. रिकॉर्ड अपेक्षित व्यवहार, और
  3. स्विच राज्य को पुनः चलाने नकली वस्तु बनाने ।

की तरह आप किसी भी अपेक्षा निर्धारित नहीं है, तो निम्न में:

mock = createMock(YourInterface.class); // 1 
// 2 (we do not expect anything) 
replay(mock); // 3 

तो इसका मतलब है कि अगर ClassUnderTest कॉल इंटरफेस के तरीकों में से कोई हो, नकली वस्तु एक AssertionError इस तरह फेंक देगा:

java.lang.AssertionError: 
    Unexpected method call yourMethodWhichYouDidNotExpectToBeCalled(): 

यह स्वयं नकारात्मक अपेक्षा जांच रहा है।

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