Я внедрил Masterpass SDK в один из моих проектов для оформления заказа. API используется для получения токена запроса путем передачи CallBackUrl и OrginURL. API успешно реализован и работает должным образом.
Проблема: у меня возникла проблема с созданием тестовых примеров junit с использованием Mockito.
Код:
public void invokeService(AuthTokenRequestBean requestBean) throws Exception {
retrieveAuthTokenService = new RetrieveAuthTokenService(requestBean);
when(processorFactory.createService(eq(RetrieveAuthTokenService.class),
any(AuthTokenRequestBean.class))).
thenReturn(retrieveAuthTokenService);
Mockito.when(retrieveAuthTokenService.getOutput()).thenReturn(response);
Mockito.when(retrieveAuthTokenService.process(any(FlowCtx.class))).thenReturn(response);
}
Исключение:
rg.mockito.exceptions.misusing.MissingMethodInvocationException:
when () требует аргумента, который должен быть «вызовом метода в макете». Например: когда (mock.getArticles ()). ThenReturn (статьи);
Кроме того, эта ошибка может появиться, потому что: 1. вы используете один из методов: final / private / equals () / hashCode (). Эти методы не могут быть заглушены / проверены. Методы имитации, объявленные для закрытых родительских классов, не поддерживаются. 2. внутри метода when () вы вызываете метод не для имитации, а для какого-то другого объекта.
Нужна помощь, если кто-то работает над этими apis для издевательства с использованием junit. Есть ли другой фреймворк, который можно использовать для имитации.