spring - "Cannot resolve method"与mockito

标签 spring junit spring-security mockito

我使用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.0thenReturn() 方法:

OngoingStubbing<T> thenReturn(T value);

问题是什么?

最佳答案

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

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

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

关于spring - "Cannot resolve method"与mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168430/

相关文章:

java - 使用 JUnit 运行大量集成测试的更好方法是什么?

maven - Maven 是否支持此应用程序设置?

testing - Elasticsearch 在测试中途抛出 'ElasticsearchIllegalStateException'

spring - 将自定义 UserDetailsS​​ervice 添加到 Spring Security OAuth2 应用程序

java - @autowired @qualifier 指向 jar 文件应用程序中的服务

java - 在 spring 中找不到带有 URI 的 HTTP 请求的映射?

java - 如何在 Thymeleaf 中显示 BufferedImage

java - Spring RestTemplate 接收 sun.security.validator.ValidatorException : PKIX path building failed:

spring - 在 Spring 中处理 HTTP 基本授权 header

spring-security - Spring 安全(Java 配置): Using antmatchers for same URL with differing HTTP methods