«Не удается решить метод» с mockito - PullRequest
0 голосов
/ 04 июля 2018

Я использую org.springframework.security.core.Authentication, у которого есть метод:

Collection<? extends GrantedAuthority> getAuthorities();

Я хочу издеваться, как показано ниже:

when(authentication.getAuthorities()).thenReturn(grantedAuthorities);

со сбором полномочий:

Collection<SimpleGrantedAuthority> grantedAuthorities = Lists.newArrayList(
        new SimpleGrantedAuthority(AuthoritiesConstants.USER));

И я использую org.springframework.security.core.authority.SimpleGrantedAuthority, который расширяет GrantedAuthority

И Intellij выдает мне ниже ошибку компиляции:

Cannot resolve method 'thenReturn(java.util.Collection<org.spring.security.core.authority.SimpleGrantedAuthority>)'

Я использую метод Mockito 2.15.0 и thenReturn() из этого:

OngoingStubbing<T> thenReturn(T value);

В чем проблема?

1 Ответ

0 голосов
/ 04 июля 2018

Попробуйте использовать другой синтаксис, чтобы вернуть вашу коллекцию с универсальным символом соответствия: doReturn(grantedAuthorities).when(authentication).getAuthorities();

Этот doReturn вызов не является тип-безопасным и приводит к проверке типа во время выполнения, но для ваших целей он вернет желаемый список макетов.

Существует множество деталей, использующих mockito и дженерики с подстановочными знаками. Больше подробностей: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#Wildcards

...