私はメソッドを持つ_org.springframework.security.core.Authentication
_を使用します:
_Collection<? extends GrantedAuthority> getAuthorities();
_
以下のようにモックしたい:
_when(authentication.getAuthorities()).thenReturn(grantedAuthorities);
_
権限のあるコレクション:
_Collection<SimpleGrantedAuthority> grantedAuthorities = Lists.newArrayList(
new SimpleGrantedAuthority(AuthoritiesConstants.USER));
_
そして、GrantedAuthority
を拡張する_org.springframework.security.core.authority.SimpleGrantedAuthority
_を使用しています
そしてIntellijは私にコンパイルエラーを下に与えます:
_Cannot resolve method 'thenReturn(Java.util.Collection<org.spring.security.core.authority.SimpleGrantedAuthority>)'
_
私はMockito _2.15.0
_とthenReturn()
メソッドを使用しています:
_OngoingStubbing<T> thenReturn(T value);
_
何が問題ですか?
他の構文を使用して、ワイルドカードに一致するジェネリックでコレクションを返すようにしてください:doReturn(grantedAuthorities).when(authentication).getAuthorities();
このdoReturn
呼び出しはタイプセーフではなく、型の実行時チェックが行われますが、目的のために、必要なモックリストが返されます。
ワイルドカードを使用したmockitoとジェネリックの使用に関する詳細はたくさんあります。詳細: http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#Wildcards