Avinash Kharche:
どのように私はストリームとの連鎖通話を模擬することができ、。また、中間動作としてeach.getName()を呼び出していることに気付きます。私はSomeCountobjectを作成するので、また、それを嘲笑することはできません。
Set<String> obj = new HashSet<String>();
List<SomeCount> someGroups = Some_Mocked_Implementation();
obj = someGroups.stream().map(each -> each.getName()).filter(each ->
userNames.indexOf(each) == -1)
.collect(Collectors.toSet());
GhostCat敬礼モニカC.:
あなたはしないでください。
これはテストのみ、古典的な「入力/出力」です。あなたは、単に作成したい入力あなたができるように、特定のオブジェクトを含むリストを予測し、その操作から出てくるべきか。
言い換えれば、あなたのテストすべき本質を見てのように:
assertThat(someMethodDoingTheStreamOperation(yourInputList), is(expectedResult));
モックコンテナなどのリストや地図(ほとんど常に)間違っているように、。
あなたはまだそれを行う上で主張している場合は、Mockitoとその使用することができ、深いスタブのサポートを。
しかし、再び:あなたが置く作業を開始することを意味その実装の詳細ソリューションのをにテストコード。テストコードは何もなく、本番コードの「コピー」ではないことをこの意味。本番コードを変更する二つ目は、あなたのユニットテストを壊すかもしれません。そうであっても、単純なリファクタリングが問題になるかもしれません。
あなたはいつもテスト持たを好むないモックに依存します。リストの話をするときと、その後、ちょっと:準備入力してリストを埋め、代わりのリストをあざけります。