Используя Mockito, как мне перехватить объект обратного вызова в методе пустота?

StackOverflow https://stackoverflow.com/questions/3581754

Вопрос

Я использую Mockito для проверки устаревшего модуля входа в систему JAAS / LDAP.

То javax.security.auth.callback.CallbackHandler Интерфейс определяет функцию:

void handle(javax.security.auth.callback.Callback[] callbacks)

Я ожидаю callbacks Содержать А. NameCallback, который является объектом, который необходимо манипулировать для передачи теста.

Есть ли способ менять это эффективно, или мне было бы лучше с неподвижной реализацией CallbackHandler?

Это было полезно?

Решение

Для возврата функций void, использовать Doanswer ()

doAnswer(...).when(mockedObject).handle(any(Callback[].class));

И ан Answer который выполняет перехват должен входить в качестве параметра doAnswer, например, как анонимный класс:

new Answer() {
  public Object answer(InvocationOnMock invocation) {
      Object[] args = invocation.getArguments();
      Mock mock = invocation.getMock();
      return null;
  }}

В этом случае args будет массив Callback[]!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top