У меня есть метод в моем коде, который выглядит примерно так:
action.onResult(new Handler<MyClass>() {
@Override
public MyClass handle() { // Do something here }
}
}
Я хочу иметь возможность издеваться над этим (используя Mockito). Что-то вроде этого:
when(mockedAction.onResult(any(Handler.class))).thenReturn(firstArg.handle());
Это означает, что я хочу вызвать метод handle
аргумента, который отправляется методу onResult
. Я не могу издеваться над обработчиком, потому что он использует внутренние методы вызывающего класса (я думал об использовании частного класса, но не нашел достаточно хорошего решения)
Мотивация. Это механизм асинхронного обратного вызова, который используется в синхронной области. Я хочу издеваться над вызовом самого обработчика, чтобы синхронно продолжить поток в коде.
onResult
недействительно, а я не мог вспомнить, как проверить пустоту. Но это не имеет отношения к этому вопросу, и мне удалось сделать это, используя ваше предложение. Спасибо! 04.05.2014