私はジェネリックスとワイルドカードをJava 8で頭に浮かべています。しかし、なぜこのリポジトリメソッドをモックできないのか理解できません。 コードはとてもシンプルなので、再現しやすいはずです。一般的なワイルドカードからの返信を模擬する方法
私は ""
The method thenReturn(Stream<capture#1-of ? extends Something>) in the type
OngoingStubbing<Stream<capture#1-of ? extends Something>> is not applicable
for the arguments (Stream<capture#3-of ? extends Something>)
テストの "thenReturn" の部分で、このコンパイルエラーを持っている:
@Test
public void ItShourReturnStreamFromRepository() {
List<Something> list = new ArrayList<Something>();
list.add(new Something());
Stream<? extends Something> stream = list.stream();
when(someRepository.getStream()).thenReturn(stream);
}
クラス:
public class Something {}
リポジトリ:
public interface SomeRepository{
Stream<? extends Something> getStream();
}
誰か助けてもらえますか? ありがとう!
[公式チュートリアル](http://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html)の推奨事項に従ってください。*戻り値の型としてワイルドカードを使用することは避けてください。* – Holger
どのようにタイプをインタフェースに追加するのですか?インターフェースSomeRepository {Stream getStream(); } ' –