2011-11-09 13 views
5

मैं कुछ धारावाहिक संचालन करने वाली विधि को यूनिट-परीक्षण कर रहा हूं। मैं serialization तर्क नकल करना चाहता हूँ। कोड के रूप में नीचे है:jmockit: मजाकिया वस्तुओं पर कन्स्ट्रक्टर कॉल की अपेक्षा कैसे करें?

ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file))); 

मैं निम्नलिखित नकली वस्तुओं बनाया है:

@Mocked FileInputStream mockFIS; 

@Mocked BufferedInputStream mockBIS; 

@Mocked ObjectInputStream mockOIS; 

मैं सेटअप एक NonStrictExpectations() ब्लॉक जहां मैं ऊपर निर्माता कॉल की उम्मीद करना चाहते हैं।

इस पर कोई विचार है कि मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

10

आप इंटरैक्शन के दिए गए सेट के लिए अपेक्षाओं का एक पूरा सेट निर्दिष्ट कर सकते हैं। Behavior-based testing with JMockit से:

विधि DoSomething() के लिए एक संभावित परीक्षण का मामला जहां SomeCheckedException फेंक दिया जाता है सफल पुनरावृत्तियों की एक मनमाना संख्या के बाद, व्यायाम कर सकते हैं। आप

@Test 
public void doSomethingHandlesSomeCheckedException() throws Exception 
{ 
    new Expectations() { 
    DependencyAbc abc; 

    { 
     new DependencyAbc(); // expect constructor 

     abc.intReturningMethod(); result = 3; 

     abc.stringReturningMethod(); 
     returns("str1", "str2"); 
     result = new SomeCheckedException(); 
    } 
    }; 

    new UnitUnderTest().doSomething(); 
} 
+2

"abc" के बाद का निर्माण किया है, कर सकते हैं: यह मानते हुए कि हम रिकॉर्ड करने के लिए (जो भी कारण के लिए) चाहते इन दो वर्गों के बीच बातचीत के लिए उम्मीदों का एक पूरा सेट, हम नीचे परीक्षण लिख सकते हैं परीक्षण करें कि यह किसी अन्य विधि में पारित किया गया है? def.someMethod (एबीसी)? मुझे इसके साथ समस्याएं आ रही हैं क्योंकि संदर्भ बराबर नहीं हैं। –

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