2015-03-11 6 views
13

JMockit का उपयोग करते समय मैं एक निर्माता मंगलाचरण पर इस तरह की एक अपवाद फेंक करना चाहते हैं:JMockit उम्मीद एपीआई: कैसे विधि/निर्माता मंगलाचरण पर एक अपवाद फेंक

new Expectations(){ 
     { 
      new FirefoxDriver();//Want to throw IllegalStateException here but how? 
     } 
}; 

उत्तर

19

एक के लिए परिणाम निर्दिष्ट करने के लिए रिकॉर्ड किए गए उम्मीद है, यह आवंटित (या तो वापस जाने के लिए या मान अपवाद फेंक) result क्षेत्र के लिए:

new Expectations() {{ 
    someMockedMethodOrConstructorInvocation(...); result = new IllegalStateException(); 
}}; 
+0

मैंने ऊपर की कोशिश की है; लेकिन मजाक करने के बजाए, यह वास्तविक कन्स्ट्रक्टर को कॉल कर रहा है और इसके बजाय ऑब्जेक्ट्स बना रहा है :( –

+1

आप केवल एक विधि या कन्स्ट्रक्टर पर एक अपेक्षा रिकॉर्ड कर सकते हैं जिसे * मॉक * किया गया है; आमतौर पर, इसका मतलब है कि आप एक का उपयोग करके नकली फ़ील्ड या नकली पैरामीटर घोषित करते हैं मजाकिया एनोटेशन, जैसे "' @ मॉक' "। अन्यथा, वास्तविक विधि या कन्स्ट्रक्टर को वास्तव में निष्पादित किया जा रहा है। –

+0

ठीक है अब अंक प्राप्त करें! धन्यवाद –

0

हम वर्ग जोड़ना चाहिए नकली होने के लिए परीक्षण मामले की विधि में पैरामीटर के रूप में एड करें। और परिणाम का उपयोग करके, हम विधि के परिणाम का नकल कर सकते हैं।

@Test 
    public void testCase(@Mocked final ClassToMock classToMockObject){ 

     new NonStrictExpectations() { 
       {  
     classToMockObject.methodToMock();result=NullPointerException(); 
      }}; 

     classToMockObject.methodToMock(); //calling the method to throw exception 
    } 
संबंधित मुद्दे