doAnswer для статических методов - PowerMock
Один из статических методов, которые я использую, это две вещи. Он возвращает некоторые данные, но также изменяет объект аргумента, который ему передается. Этот обновленный объект аргумента затем используется в коде.
Я использую 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() {
@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
это сторонний класс, поэтому я нене может контролировать его поведение.
Любые предложения, что может пойти не так?