2012-05-09 16 views

उत्तर

208

जावा 8 के लिए और इसके बाद के संस्करण, यह आसान है:

when(mock.process(Matchers.anyList())); 

जावा 7 और नीचे के लिए, संकलक मदद का एक सा की जरूरत है। anyListOf(Class<T> clazz) का उपयोग करें:

when(mock.process(Matchers.<List<Bar>>any(List.class))); 

जावा 8 नव प्रकार मापदंडों के आधार पर निष्कर्ष की अनुमति देता है, इसलिए यदि आप जावा का उपयोग कर रहे: उपरोक्त anyListOf को

when(mock.process(Matchers.anyListOf(Bar.class))); 
+5

नोट: यह मॉकिटो 2 में बहिष्कृत है * * और इसे मॉकिटो 3 में हटा दिया जाएगा। बहिष्कृत क्योंकि जावा 8 कंपाइलर अब इस प्रकार का अनुमान लगा सकता है। – Kip

+0

@Kip धन्यवाद मैंने उत्तर – artbristol

+0

@artbristol को अपडेट किया है क्या आपको पता है कि किसी भीसेट() के साथ किसी भी सूची() के समान काम करना चाहिए? मैं जावा 8 में हूं और ग्रहण आईडीई –

10

इसके अलावा, आप हमेशा स्पष्ट रूप से इस सिंटैक्स का उपयोग जेनरिक निर्दिष्ट कर सकते हैं 8, इस के रूप में अच्छी तरह से काम कर सकते हैं:

when(mock.process(Matchers.any())); 

याद रखें कि न तो any() है और न ही anyList() w बीमार प्रकार या शून्य जांच सहित किसी भी चेक लागू करें। मॉकिटो 2.x में, any(Foo.class) को "किसी भी instanceof फू" के रूप में बदल दिया गया था, लेकिन any() का अर्थ है "null सहित कोई भी मूल्य"।

नोट: org.hamcrest.Matchers के साथ नाम टकराव से बचने के लिए उपर्युक्त मैकिटो के नए संस्करणों में ArgumentMatchers पर स्विच किया गया है। Mockito के पुराने संस्करणों को ऊपर के रूप में org.mockito.Matchers का उपयोग जारी रखने की आवश्यकता होगी।

+2

'' 'Matchers.any()' '' बहुत सुविधाजनक है! – MBach

+0

Matchers अब बहिष्कृत है, यहां मॉकिटो "ArgumentMatchers का उपयोग करें। इस वर्ग को अब Hamcrest org.hamcrest.Matchers क्लास के नाम से टकराव से बचने के लिए बहिष्कृत किया गया है। यह कक्षा संस्करण 3.0 में हटा दी जाएगी।" https://static.javadoc.io/org.mockito/mockito-core/2.7.21/org/mockito/Matchers.html – oddmeter

+0

@ जेफबॉमन कोई पसीना नहीं, बस दूसरों के लिए एक नोट छोड़ रहा है :) – oddmeter