我写了一个使用Java流的方法,它简单地遍历对象列表并在满足某些条件时返回true/false。
Java方法:
我还为此编写了一个模拟测试用例。当我执行测试用例时,测试成功,但是我收到项目自定义错误提示,指出所有创建的线程都没有关闭。
我甚至尝试使用带资源的try-with-resources流,但这也没有帮助。
模拟测试:
附言:我已经进行了调试,确认在调用invokeSomeMethod()时,我的模拟测试列表被返回。
据我所知,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));
}
附言:我已经进行了调试,确认在调用invokeSomeMethod()时,我的模拟测试列表被返回。
据我所知,Java流内部会关闭它创建的线程。我这样实现是错误的吗?
listObj.getAttr() = 1
是一次无效的尝试赋值。Stream.count()
没有参数。为什么您要发布那段代码,当它显然与真实代码没有关系?