एक वर्ग Foo
कि निर्माता में Bar
को बीच में रोक और फिर Bar
के मामले में toString()
लागू करता है की निम्न नमूना MockUp
पर विचार करें;क्या JMockit MockUp mock toString() कर सकते हैं?
public class FooStub extends MockUp<Foo> {
private Bar bar;
@Mock
public void $init(Bar bar) {
this.bar = bar;
}
@Mock
public String toString() {
return bar.toString();
}
}
Foo
toString()
ओवरराइड करने के लिए सभी ठीक काम करता है यदि ऐसा होता है। अन्यथा, आपको IllegalArgumentException
मिलता है: "निम्नलिखित मॉक्स के लिए वास्तविक तरीकों को मिलान नहीं किया जा रहा है"। मैं यहां से समझता हूं कि जेमॉकिट बेस क्लास में नहीं दिखता है और इसलिए नकली करने के लिए toString()
विधि नहीं मिल सकती है।
मान लीजिए कि मैं फू क्लास को संशोधित नहीं कर सकता (वास्तव में मैं कर सकता हूं, लेकिन सिर्फ तर्क के लिए), क्या toString()
को इस Foo
कक्षा के लिए नकल करने का कोई तरीका है?
स्पष्ट होने के लिए, मैं इस वर्ग के सभी उदाहरणों को नकल करना चाहता हूं, न केवल एक उदाहरण (जिसमें आसान समाधान हैं जिन्हें MockUp
की आवश्यकता नहीं है)।
[जेमॉकिट का संभावित डुप्लिकेट: net.android.Uri क्लास के स्ट्रिंग के लिए विधि का नकल नहीं कर सकता] (https://stackoverflow.com/questions/41561351/jmockit-cant-mock-method-tostring-of-net- android-uri वर्ग) – Jotunacorn