私はPaginatedQueryList
を返すクエリ文を持っています。これをリストに割り当てます。それから私はリストを操作します。ユニットテスト時にリストを返す方法PaginatedQueryList
List<MyClass> entries= mapper.query(MyClass.class, queryExpression);
//Logic to test
Map<String, Map> map = entries.stream()
.collect(Collectors.toMap(MyClass::getA, MyClass::getB));
....
....
私は
list
は、私は自分自身を構築し、メインのロジックをテストするために、メインプログラムにそれを渡したい
List<MyClass>
(ArrayListの)である
when(mapper.query(eq(MyClass.class), any(DynamoDBQueryExpression.class)))
.thenReturn((PaginatedQueryList<MyClass>) list);
のようにそれをテストしてみました。
しかし、それは
とjava.lang.ClassCastExceptionがスローされます:java.util.ArrayListのはcom.amazonaws.services.dynamodbv2.datamodeling.PaginatedQueryList
にキャストすることはできません私は送ることができますどのようにmappper.query(..)
を実行すると、リストが表示されます。
mapper.query(..)
を実行すると、作成したリストをentries
に送信することが目的です。
注:
私もmocked
PaginatedQueryListを送信しようとしたが、それはentries.stream()
私は、実際のストリームを送信したいんとき。 は私が
when(paginatedQueryList.stream()).thenReturn(Stream.of(list.get(0), list.get(1)));
それはスローのようにしようとした
java.lang.IllegalStateException:ストリームがすでに時に操作したり(java.util.stream.AbstractPipeline.evaluateで を閉じられているAbstractPipeline.java:229 )
注2:
は、私はPaginatedQueryList
を嘲笑し、2回(entries.stream()
の各アクセス用)list.stream()
を送る送信することによって、問題を解決することができました