पर विचार के लिए निम्न विधि:विधि कॉल किए बिना विधि कॉल और वापसी मूल्य का नकल कैसे करें?
public boolean isACertainValue() {
if(context.getValueA() != null && context.getValueA().toBoolean() == true) {
if(context.getType() != null && context.getType() == ContextType.certainType) {
return true;
}
}
return false;
}
मैं इस कोड नहीं लिखा था, यह नरक के रूप में बदसूरत है, यह पूरी तरह overcomplicated है, लेकिन मैं इसके साथ काम करना है।
अब मैं एक विधि का परीक्षण करना चाहता हूं जो इस विधि के लिए कॉल पर निर्भर करता है।
मैंने सोचा कि मैं द्वारा इस समस्या से निपटने सकता है: क्योंकि उस मामले मैं परीक्षण करना चाहते है
Mockito.when(spy.isACertainValue()).thenReturn(true);
।
लेकिन यह अभी भी विधि-शरीर बुला रहा है के रूप में यह काम नहीं करता है:/
मैं nullpointers पाने या बल्कि मैं
misusing.WrongTypeOfReturnValue की तर्ज पर कुछ पाने; Boalan getValueA() द्वारा वापस नहीं किया जा सकता है। getValueA() ValueA लौटना चाहिए
तो मैं (एक समाधान के रूप) की कोशिश की करने के लिए:
Mockito.when(contextMock.getValueA()).thenReturn(new ValueA());
और Mockito.when(contextMock.getType()).thenReturn(ContextType.certainType);
लेकिन फिर मैं एक nullpointer नहीं कर सकते कि मैं सक्षम होने के लिए लग रहे प्राप्त डीबग करने के लिए।
तो, इस मामले में यह कैसे किया जाता है?
ठीक है कि यह कैसे करना है, लेकिन शायद कि valueA आप अपने परीक्षण में आगे पर जरूरत में एक मूल्य है, तो आप भी नकली चाहिए वस्तु, वापस नहीं बदले एक उदाहरण (डिफ़ॉल्ट) कन्स्ट्रक्टर के साथ तत्काल एक उदाहरण। – Stultuske