Mockito matchers प्रदान करता है:Mockito: सूची के साथ जेनरिक
when(mock.process(Matchers.any(List.class)));
कैसे चेतावनी अगर process
एक List<Bar>
बजाय लेता है से बचने के लिए?
Mockito matchers प्रदान करता है:Mockito: सूची के साथ जेनरिक
when(mock.process(Matchers.any(List.class)));
कैसे चेतावनी अगर process
एक List<Bar>
बजाय लेता है से बचने के लिए?
जावा 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)));
इसके अलावा, आप हमेशा स्पष्ट रूप से इस सिंटैक्स का उपयोग जेनरिक निर्दिष्ट कर सकते हैं 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
का उपयोग जारी रखने की आवश्यकता होगी।
'' 'Matchers.any()' '' बहुत सुविधाजनक है! – MBach
Matchers अब बहिष्कृत है, यहां मॉकिटो "ArgumentMatchers का उपयोग करें। इस वर्ग को अब Hamcrest org.hamcrest.Matchers क्लास के नाम से टकराव से बचने के लिए बहिष्कृत किया गया है। यह कक्षा संस्करण 3.0 में हटा दी जाएगी।" https://static.javadoc.io/org.mockito/mockito-core/2.7.21/org/mockito/Matchers.html – oddmeter
@ जेफबॉमन कोई पसीना नहीं, बस दूसरों के लिए एक नोट छोड़ रहा है :) – oddmeter
नोट: यह मॉकिटो 2 में बहिष्कृत है * * और इसे मॉकिटो 3 में हटा दिया जाएगा। बहिष्कृत क्योंकि जावा 8 कंपाइलर अब इस प्रकार का अनुमान लगा सकता है। – Kip
@Kip धन्यवाद मैंने उत्तर – artbristol
@artbristol को अपडेट किया है क्या आपको पता है कि किसी भीसेट() के साथ किसी भी सूची() के समान काम करना चाहिए? मैं जावा 8 में हूं और ग्रहण आईडीई –