के रूप में एक कन्स्ट्रक्टर का मज़ाक उड़ा रहा है। मैं विभिन्न मॉकिंग पुस्तकालयों और PowerMock (विशेष रूप से EasyMock एक्सटेंशन) के इन्स और आउट सीखने की कोशिश कर रहा हूं, सूची में अगला है। मैं एक कन्स्ट्रक्टर का मज़ाक लगाने का प्रयास कर रहा हूं और प्रदान किए गए उदाहरणों में वही प्रतिक्रिया नहीं होती है जब मैं उन्हें दोहराने की कोशिश करता हूं। जहां तक मैं कह सकता हूं, यह कभी भी कन्स्ट्रक्टर को झुकाता नहीं है और सिर्फ सामान्य होता है जैसे कि यह सामान्य था।पावरमोक की उम्मीदन्यू() अपेक्षित
यह परीक्षण वर्ग है:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Writer.class})
public class FaultInjectionSituationTest {
@Test
public void testActionFail() throws Exception {
FaultInjectionSituation fis = new FaultInjectionSituation();
PowerMock.expectNew(Writer.class, "test")
.andThrow(new IOException("thrown from mock"));
PowerMock.replay(Writer.class);
System.out.println(fis.action());
PowerMock.verify(Writer.class);
}
}
मैं एक EasyMock.isA (String.class) के साथ "परीक्षण" की जगह की कोशिश की है, लेकिन यह एक ही परिणाम सामने आए। ,
public class Writer {
public Writer(String s) throws IOException {
}
public Writer() throws IOException{
}
}
जब परीक्षण चलाया जाता है इसे बाहर प्रिंट "फेंक बिना लौटे:
public class FaultInjectionSituation {
public String action(){
Writer w;
try {
w = new Writer("test");
} catch (IOException e) {
System.out.println("thrown: " + e.getMessage());
return e.getLocalizedMessage();
}
return "returned without throw";
}
}
" लेखक "एक वर्ग का एक खोल से ज्यादा कुछ नहीं है:
यह FaultInjectionSituation है ", संकेत है कि अपवाद कभी नहीं फेंक दिया गया था।
धन्यवाद, मुझे एहसास नहीं हुआ कि कन्स्ट्रक्टर नामक वस्तु को भी शामिल करने की आवश्यकता है। – AdamSpurgin
मैं एक ही मुद्दे में भाग गया ... निश्चित रूप से मैं क्या खो रहा था :) –
बहुत बहुत धन्यवाद, जब तक मुझे यह जवाब नहीं मिला, तब तक मैं लंबे समय तक संघर्ष कर रहा था। – OQJF