我使用的FileReader
具有以下方法:
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
然后Intellij给我下面的编译错误:
GrantedAuthority
我使用的是Mockito Cannot resolve method 'thenReturn(java.util.Collection<org.spring.security.core.authority.SimpleGrantedAuthority>)'
和2.15.0
方法:
thenReturn()
出什么问题了?
答案 0 :(得分:4)
尝试使用其他语法来返回带有与通配符匹配的泛型的集合:
doReturn(grantedAuthorities).when(authentication).getAuthorities();
此doReturn
调用不是类型安全的,会导致在运行时检查类型,但出于您的目的,它将返回您想要的模拟列表。
使用通配符的模仿和泛型有很多细节。更多细节: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#Wildcards