Я использую mockito для тестирования устаревшего модуля входа в систему JAAS / LDAP.
Интерфейс javax.security.auth.callback.CallbackHandler
определяет функцию:
void handle(javax.security.auth.callback.Callback[] 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[]
!