मेरे ज्ञान के लिए, आप मॉकिटो, केवल विधियों के साथ रचनाकारों का नकल नहीं कर सकते हैं। लेकिन मॉकिटो Google कोड पेज पर विकी के अनुसार आपके वर्ग में एक विधि बनाकर कन्स्ट्रक्टर व्यवहार का नकल करने का एक तरीका है जो उस वर्ग का एक नया उदाहरण लौटाता है। तो आप उस विधि को नकल कर सकते हैं। नीचे है एक excerpt directly from the Mockito wiki:
पैटर्न 1 - का उपयोग कर ऑब्जेक्ट निर्माण के लिए एक लाइन तरीकों
पैटर्न 1 (एक वर्ग MyClass बुलाया परीक्षण) का उपयोग करने के लिए आपको
Foo foo = new Foo(a, b, c);
की तरह एक फोन की जगह लेंगे
Foo foo = makeFoo(a, b, c);
साथ
और एक पंक्ति metho बारे में डी
Foo makeFoo(A a, B b, C c) {
return new Foo(a, b, c);
}
यह महत्वपूर्ण है कि आप विधि में कोई तर्क शामिल न करें; सिर्फ एक पंक्ति जो ऑब्जेक्ट बनाता है। इसका कारण यह है कि इकाई परीक्षण के लिए विधि कभी भी नहीं जा रही है।
आप, वर्ग, उद्देश्य यह है कि आप परीक्षण वास्तव में एक Mockito जासूस हो जाएगा परीक्षण करने के लिए इस विधि के साथ अधिरोहित आते हैं, एक नकली वापस जाने के लिए। आप जो परीक्षण कर रहे हैं वह कक्षा नहीं है, लेकिन इसका बहुत ही संशोधित संस्करण है।
आपका परीक्षण वर्ग की तरह
@Mock private Foo mockFoo;
private MyClass toTest = spy(new MyClass());
अंत में, अपने परीक्षा पद्धति के अंदर तुम बाहर makeFoo करने के लिए कॉल की तरह
doReturn(mockFoo)
.when(toTest)
.makeFoo(any(A.class), any(B.class), any(C.class));
एक लाइन के साथ नकली आप matchers है कि और अधिक कर रहे हैं का उपयोग कर सकते सदस्यों शामिल हो सकता है किसी भी() से विशिष्ट यदि आप चाहते हैं तो कन्स्ट्रक्टर को भेजे गए तर्कों की जांच करें।
यदि आप बस अपनी कक्षा के एक मजाकिया वस्तु को वापस करना चाहते हैं तो मुझे लगता है कि यह आपके लिए काम करना चाहिए।किसी भी मामले में आप यहाँ ऑब्जेक्ट निर्माण मजाक के बारे में अधिक पढ़ सकते हैं:
अपने मज़ाक उड़ाया जांच() विधि सही काम कर रहा है एक ही रहता है? –
@BenGlasser चेक() ठीक काम करता है। बस जब नया काम नहीं कर रहा है। मैंने विवरण भी अपडेट किया। – Shengjie