gpt4 book ai didi

java - future 结果集的 JUnit 测试

转载 作者:搜寻专家 更新时间:2023-11-01 03:46:58 25 4
gpt4 key购买 nike

我一直在模拟函数 ResultSetFuture 的测试,我使用了来自 Github 的示例(有效)用于测试 ResultSetFuture,但我正在测试/模拟的代码使用 Futures#successfulAsList 如图所示 here .所以在第 34 行中,测试只是停止并且永远不会结束。下面显示的代码是暂停的测试的一部分。

ResultSetFuture future = Mockito.mock(ResultSetFuture.class);
Mockito.doReturn(result).when(future).get();
Mockito.doReturn(future).when(session).executeAsync(Mockito.anyString());

ResultSetFuture resultF = session.executeAsync("select value from table where key='a'");

Future<List<ResultSet>> data = Futures.successfulAsList(new ArrayList(){{ add(resultF); }});
List finished = data.get(); // <---- The test stops here

最佳答案

您需要在future 中模拟isDone 方法以指示执行完成并避免代码暂停。

ResultSetFuture future = Mockito.mock(ResultSetFuture.class);
Mockito.doReturn(result).when(future).get();
Mockito.doReturn(future).when(session).executeAsync(Mockito.anyString());
Mockito.doReturn(true).when(future).isDone(); //<-- mock to avoid halting

ResultSetFuture resultF = session.executeAsync("select value from table where key='a'");

Future<List<ResultSet>> data = Futures.successfulAsList(Collections.singletonList(resultF));
List finished = data.get(); // <---- The test stops here

关于java - future 结果集的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com