Iは、Javaオブジェクトのリスト上どの単に反復ストリーム及び真/偽を返し使用方法を書かれている特定の条件が満たされているJavaの並列ストリーム近いスレッド
Javaメソッド:
boolean method(SampleObj sampleObj) {
List testList = invokeSomeMethod();
int result = testList
.parallelStream()
.filter(listObj -> (listObj.getAttr() = 1))
.count(listObj -> listObj.isAttr4());
return (result > 10);
}
私が書かれています同じもののモックテストケース。テストケースを実行すると、テストは成功しますが、作成されたすべてのスレッドがシャットダウンされていないことを示すプロジェクトカスタムエラーが発生します。
私はtry-with-resourcesでストリームを使用しようとしても、それは役に立たなかった。
模擬試験:
@Test
public void testSomeMethod() {
SampleObj sampleObj1 = new SampleObj(10, 20, 30, true);
SampleObj sampleObj2 = new SampleObj(10, 20, 30, true);
SampleObj sampleObj3 = new SampleObj(10, 20, 30, false);
SampleObj sampleObjTest = new SampleObj(10, 20, 30, true);
List<SampleObj> testList = new ArrayList<SampleObj>();
testList.add(sampleObj1);
testList.add(sampleObj2);
testList.add(sampleObj3);
when(mockedAttribute.invokeSomeMethod()).thenReturn(nodeList);
ClassToBeTested classTest = createGenericMockRules();
Assert.assertTrue(classTest.method(sampleObjTest));
}
P.S.私はinvokeSomeMethod()が呼び出されたときに、私の模擬testListが返されることを確認するためにデバッグしました。
私が知る限り、Javaストリームは内部的に、作成したスレッドを閉じます。 これを間違って実装していますか?
あなたは何を嘲笑していますか?テストケースを表示できますか? –
コードスニペットを追加 – learningMyWayThru
注釈として、 '== true'という表現は常に冗長です。 – chrylis