निष्पादित करें मैं जुनीट परीक्षणों के लिए मॉकिटो का उपयोग कर रहा हूं। तो वहाँ किसी वर्ग एक है कि परीक्षण के लिए कोड मैं चाहता हूँ से प्रयोग किया जाता है:मॉकिटो: जब विधि एए को बुलाया जाता है तो बीबी
class A{
public A(){}
public final String a(String x){
return "A.a: " + x;
}
}
और मैं एक ही तर्क और वापसी मान के एक ही प्रकार के साथ एक और विधि कॉल के साथ विधि कॉल A.a बदलना चाहते हैं। जैसा कि आप देख सकते हैं, कक्षा को विस्तारित करके विधि को ओवरराइड करना संभव नहीं है क्योंकि यह अंतिम है। तो क्या मैं अब विधि B.b के साथ एक और वर्ग बी है:
class B{
public B(){}
public String b(String x){
return "B.b: " + x;
}
}
अब मुझे यकीन है कि हर बार जब A.a कोड से कहा जाता है बनाना चाहते, B.b की वापसी मान के बजाय प्रयोग किया जाता है। क्या यह मॉकिटो (Mockito.when(A.a(x)).thenReturn(B.b(x));
जैसा कुछ) के साथ प्राप्त करने की संभावना है, लेकिन x के मान को जानने के बिना, उसी पैरामीटर x के साथ?
किसी भी मदद की सराहना की जाएगी, अग्रिम धन्यवाद!
आप जिस परिदृश्य का परीक्षण करना चाहते हैं? क्यों एए() अंतिम है? और आप एए() की कॉल को प्रतिस्थापित क्यों करना चाहते हैं? जो मैं समझता हूं उससे आप एए() को ओवरराइड करना चाहते हैं, है ना? – Adelin
मैं एंड्रॉइड लाइब्रेरी प्रोजेक्ट का परीक्षण कर रहा हूं (मैं एंड्रॉइड प्रोजेक्ट्स का परीक्षण करने में सक्षम होने के लिए रोबोलेक्ट्रिक का भी उपयोग करता हूं)। इस विशेष मामले में मैं एक डेटाबेस का परीक्षण करना चाहता हूं। कोड एक सामग्री रिज़ॉल्वर को कॉल करता है, सामग्री प्रदाता AndroidManifest.xml में परिभाषित किया गया है और मुझे सामग्री प्रदाता प्रोग्रामेटिक रूप से सेट करने का कोई तरीका नहीं मिला है क्योंकि यह परीक्षण चलाते समय xml से लोड नहीं होता है। तो मैं चाहता था कि कोड सामग्री समाधानकर्ता के बजाय सामग्री प्रदाता को कॉल करे। – user1448982