“无法解析方法”与嘲笑

时间:2018-07-04 07:48:31

标签: spring junit spring-security mockito

我使用的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()

出什么问题了?

1 个答案:

答案 0 :(得分:4)

尝试使用其他语法来返回带有与通配符匹配的泛型的集合: doReturn(grantedAuthorities).when(authentication).getAuthorities();

doReturn调用不是类型安全的,会导致在运行时检查类型,但出于您的目的,它将返回您想要的模拟列表。

使用通配符的模仿和泛型有很多细节。更多细节: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#Wildcards