Jedną z metod statycznych używam, robi dwie rzeczy. Zwraca niektóre dane, ale także modyfikuje obiekt argumentu, który jest do niego przekazywany. Ten zaktualizowany obiekt argumentu jest następnie używany w kodzie.doładowanie dla metod statycznych - PowerMock
Używam PowerMock do kpiny z zachowania zwrotnego.
Definiując drugą część - aktualizując argument wejściowy, definiuję metodę doAnswer, ale nie działa. Metoda, którą próbuję przetestować, wygląda tak.
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)));
}
ale powyżej wyskakuje komunikat o błędzie "Wykryto tu niedokończony stubb". Connector
to klasa stron trzecich, więc nie mam kontroli nad jej zachowaniem.
Wszelkie sugestie, co może być nie tak?
thnx dla linku do dokumentu. Spróbuję jutro. – RandomQuestion
To działało. Złożyłem błąd. Temat nie wskazuje, ale nie mogę go edytować. https://code.google.com/p/powermock/issues/detail?id=452&can=4&q=javadoc – RandomQuestion