के साथ मैक्स से अपवादों को फेंक दिया गया है। मैं अपनी मॉक ऑब्जेक्ट्स में से एक को एक विशेष विधि कहने पर एक अपवाद अपवाद फेंकने की कोशिश कर रहा हूं। मैं निम्नलिखित कोशिश कर रहा हूँ।मॉकिटो
@Test(expectedExceptions = SomeException.class)
public void throwCheckedException() {
List<String> list = mock(List.class);
when(list.get(0)).thenThrow(new SomeException());
String test = list.get(0);
}
public class SomeException extends Exception {
}
हालांकि, यह निम्न त्रुटि उत्पन्न करता है।
org.testng.TestException:
Expected exception com.testing.MockitoCheckedExceptions$SomeException but got org.mockito.exceptions.base.MockitoException:
Checked exception is invalid for this method!
Invalid: com.testing.MockitoCheckedExceptions$SomeException
Mockito documentation को देखते हुए, वे केवल RuntimeException
उपयोग करें, यह Mockito साथ एक नकली वस्तु से जाँच की अपवाद फेंकने के लिए संभव नहीं है?
जबकि मेरा वास्तविक कोड वास्तव में सूची का उपयोग नहीं कर रहा था, आपका उत्तर उस विधि कॉल के लिए भी लागू होता है। मैं गलत तरीके का मज़ाक उड़ा रहा था। धन्यवाद। –
अतिरिक्त: यदि आप करते हैं तो किसी भी विधि को बिना किसी फेंकने के विधि को दबाएं, लेकिन आपको यह अपवाद भी मिलेगा – dwana
कोटलिनर्स के लिए: कोटलिन ने अपवादों की जांच नहीं की है, इसलिए आप आमतौर पर फ़ंक्शन हस्ताक्षर में (फ़ंक्शन हस्ताक्षर में) घोषित नहीं कर सकते हैं एक अपवाद फेंकता है। हालांकि, आप समकक्ष जावा कोड में फेंकने के रूप में संकलक को समान बाइटकोड उत्पन्न करने के लिए 'थ्रो' एनोटेशन के साथ फ़ंक्शन को एनोटेट कर सकते हैं। अधिक जानकारी के लिए [यहां] देखें (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-throws/index.html)। – Metallica