2013-05-29 15 views
5

मैं सिर्फ Mockito के साथ शुरू कर रहा हूँ और मुझे सिर्फ ऐसा कुछ करना चाहता हूँ की एक पैरामीटर पर एक विधि कॉल:Mockito एक मज़ाक उड़ाया विधि

public class Test {  
    public void clearList(List l){ 
     doVeryLOOOONGDatabaseCallll(); 
     l.clear(); 
     return; 
    } 
} 

/// ... 
Test test = mock(Test.class); 
Mockito.when(test.clearList(any(List.class))).then(l => l.clear()); 

चाल करने के लिए कुछ संकेत है? आपकी मदद के लिए धन्यवाद!

+0

नहीं, मैं मानकों में डाल सूची खाली करने के लिए जब विधि 'clearList (सूची एल)' कहा जाता है चाहता हूँ। – Thomas

+0

नकली 'doVeryLOOOONGDatabaseCallll() 'स्पष्ट नहीं है()'। मॉकिंग विधियों के अंदर व्यवहार बदलने के बारे में नहीं है; यह ऐसा कर रहा है ताकि आपको बाहरी निर्भरताओं की आवश्यकता न हो। –

+0

ब्रायन धन्यवाद, लेकिन यह एक स्थिर विधि है, मैं सिर्फ चीजों को सरल बनाना चाहता था। मैं इसे नकल नहीं कर सकता। – Thomas

उत्तर

16

कुछ इस तरह यह करना चाहिए (परीक्षण नहीं):

doAnswer(new Answer() { 
    public Object answer(InvocationOnMock invocation) { 
     Object[] args = invocation.getArguments(); 
     List<?> list = (List<?>) args[0]; 
     list.clear(); 
     return null; 
    } 
}).when(test).clearList(any(List.class)); 
+0

आप बहुत प्रभावशाली हैं, मैं अभी परीक्षण करता हूं !! – Thomas

+0

आईटी बस अविश्वसनीय काम करता है !! – Thomas

+0

आप मेरे हीरो हैं। – Thomas

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