2013-03-01 14 views
241

मेरे पास void रिटर्न प्रकार के साथ एक विधि है। यह कई अपवाद भी फेंक सकता है इसलिए मैं उन अपवादों का परीक्षण करना चाहता हूं। सभी प्रयास इसी कारण से विफल रहे हैं:मॉकिटो परीक्षण एक शून्य विधि एक अपवाद फेंकता है

विधि जब (टी) (शून्य) प्रकार में Stubber तर्क के लिए लागू नहीं है

कोई भी विचार कैसे मैं फेंक विधि प्राप्त कर सकते हैं एक निर्दिष्ट अपवाद?

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...)); 
+0

संभावित डुप्लिकेट (https://stackoverflow.com [mockito साथ तरीकों शून्य करने के लिए नकली बनाने के लिए]/प्रश्न/2276271/कैसे-टू-मेक-मॉक-टू-शून्य-विधियों के साथ-मॉकिटो) – Willian

उत्तर

449

कोष्ठक बुरी तरह से रखा गया है। आप का उपयोग करना चाहिए

doThrow(new Exception()).when(mockedObject).methodReturningVoid(...); 
             ^

और नहीं

doThrow(new Exception()).when(mockedObject.methodReturningVoid(...)); 
                   ^

यह the documentation से समझाया गया है

की
+3

@edwardmlyte यह मॉकिटो असंगतता उन कारणों में से एक है जिन्हें मैंने [मोक्सी मैक्स] पर स्विच किया है (https://code.google .com/p/moxiemocks/विकी/मॉकिंग लाइब्रेरी कॉम्परिसन) – Muel

+0

@ स्तरीय दोनों का उपयोग किया जा सकता है: http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#5। अपवाद बनाना इसे फेंक नहीं देता है। –

+1

@ जेबी निजेट मैं पूरी तरह से आपसे सहमत हूं लेकिन हालांकि अगर मैं doThrow (Exception.class) के बजाय doThrow (नया अपवाद()) लिखता हूं, तो मुझे अपना परीक्षण लॉन्च करने पर निम्न त्रुटि होती है; अपेक्षित अपवाद com.company.project.exception.ElementNotFoundException लेकिन org.mockito.exceptions.base.MockitoException मिला: – clement

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