2010-06-23 12 views
7

क्या मॉक ऑब्जेक्ट के उसी उदाहरण पर विशिष्ट अपेक्षाओं को फिर से परिभाषित करना संभव है?EasyMock - नकली रीसेट कैसे करें लेकिन अपेक्षाओं को बनाए रखें?

मैं इस परीक्षण है जो ठीक की पुष्टि करता है कहते हैं:

List<String> foo = createMock(List.class); 
expect(foo.get(1)).andReturn("Wibble").once(); 
expect(foo.size()).andReturn(1).once(); 
replay(foo); 
System.out.println(foo.get(1)); 
System.out.println(foo.size()); 
verify(foo); 

क्या मैं तो करना चाहते हैं, नकली रीसेट है परिभाषित उम्मीदों के रख रखाव के लिए, लेकिन उनमें से एक को बदलने, कहते हैं:

reset(foo); 
// Redefine just one of the two expectations 
expect(foo.get(1)).andReturn("Wobble").once();     
System.out.println(foo.get(1)); 
System.out.println(foo.size()); 
verify(foo); 

मिनट में काम नहीं करता है क्योंकि रीसेट कॉल के बाद foo.size परिभाषित नहीं किया गया है।

हर बार उम्मीदों के पुनर्निर्माण के बजाय ऐसा करने का एक अच्छा तरीका होना चाहिए?

अग्रिम धन्यवाद

+0

अच्छा सवाल ... EasyMock API का उपयोग करके ऐसा करने का कोई तरीका नहीं है? –

उत्तर

2

आप एक समारोह के रूप उम्मीदों लिख सकते हैं और एक तर्क के रूप उम्मीद तर्क पारित कर सकता है? पिछले मौकों पर मैंने यही किया है।

private List<String> setExpectations(String expectedString) { 
    List<String> foo = createMock(List.class); 
    expect(foo.get(0)).andReturn(expectedString).once(); 
    expect(foo.size()).andReturn(1).once(); 
    replay(foo); 
    return foo; 
} 

प्लस: शून्य शून्य स्ट्रिंग, हाँ?

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