Uno dei metodi statici che sto usando, fa due cose. Restituisce alcuni dati, ma modifica anche l'argomento oggetto che gli viene passato. Questo oggetto argomento aggiornato viene quindi utilizzato in seguito nel codice.doAnswer per metodi statici - PowerMock
Sto usando PowerMock per prendere in giro il comportamento di ritorno.
Per la definizione della seconda parte: aggiornamento dell'argomento di input, sto definendo il metodo doAnswer ma non funziona. Il metodo che sto cercando di testare sembra questo.
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)));
}
ma in alto genera errore dicendo "Stub non terminato rilevato qui". Connector
è una classe di terze parti, quindi non ho il controllo sul suo comportamento.
Qualche suggerimento, cosa potrebbe andare storto?
thnx per il collegamento doc. Domani proveremo. – RandomQuestion
Questo ha funzionato. Ho presentato un bug. Il soggetto non è da intendersi ma non riesco a modificarlo. https://code.google.com/p/powermock/issues/detail?id=452&can=4&q=javadoc – RandomQuestion