मैं जिस स्थिर विधि का उपयोग कर रहा हूं, वह दो चीजें करता है। यह कुछ डेटा देता है, लेकिन यह उस तर्क वस्तु को भी संशोधित करता है जो इसे पारित किया जाता है। इस अद्यतन तर्क ऑब्जेक्ट को बाद में कोड में उपयोग किया जाता है।स्थिर तरीकों के लिए doAnswer - PowerMock
मैं रिटर्न व्यवहार का नकल करने के लिए पावरमैक का उपयोग कर रहा हूं।
दूसरे भाग को परिभाषित करने के लिए - इनपुट तर्क को अद्यतन करने के लिए, मैं doAnswer विधि को परिभाषित कर रहा हूं लेकिन यह काम नहीं कर रहा है। जिस विधि को मैं परीक्षण करने की कोशिश कर रहा हूं वह इस तरह दिखता है।
public void login() throws ConnectionException, AsyncApiException {
ConnectorConfig partnerConfig = new ConnectorConfig();
//This call sets the value in one member variable 'serviceEndPoint in ParterConfig which is accessed later in this method only.
partnerConnection = Connector.newConnection(partnerConfig);
//partnerConfig.getServiceEndpoint is called.
PowerMockito.mockStatic(Connector.class);
when(Connector.newConnection(Mockito.any(ConnectorConfig.class))).thenReturn(partnerConnection);
PowerMockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) {
ConnectorConfig config = (ConnectorConfig) invocation.getArguments()[0];
config.setServiceEndpoint("service end point");
return null;
}
}).when(Connector.newConnection(Mockito.any(ConnectorConfig.class)));
}
लेकिन उपरोक्त त्रुटि बताती है कि 'यहां अनफिनिड स्टबिंग का पता चला है'। Connector
एक तृतीय पक्ष वर्ग है इसलिए मेरे व्यवहार पर नियंत्रण नहीं है।
कोई सुझाव, क्या गलत हो सकता है?
डॉक्टर लिंक के लिए thnx। मैं कल कोशिश करूँगा। – RandomQuestion
यह काम किया। मैंने एक बग दायर किया है। विषय इंगित नहीं है लेकिन मैं इसे संपादित नहीं कर सकता। https://code.google.com/p/powermock/issues/detail?id=452&can=4&q=javadoc – RandomQuestion