Java8 单元测试 CompletableFuture 异常

我正在使用 CompletableFuture Java8 类在 Java 中异步进行网络调用,特别是使用该supplyAsync()方法。它工作得很好。我发现我可以使用CompletableFuture.completedFuture(). 我想弄清楚的是如何对异步任务期间抛出异常(即 、 或 )的CompletionException情况InterruptedException进行单元测试(如果可能)。ExecutionException

https://www.baeldung.com/java-completablefuture是一个起点和有用的来源,但没有解决这个问题。

我的第一种方法无法编译:

final CompletableFuture<ResponseType> completableFutureException =        CompletableFuture.completedFuture(new InterruptedException());

我的第二种方法可预见地在运行时生成ClassCastException: final CompletableFuture completableFutureException =        CompletableFuture.completedFuture(new InterruptedException());

java.lang.ClassCastException: java.lang.InterruptedException cannot be cast to ResponseType

听起来CompletableFuture<U> newIncompleteFuture()Java9 中的方法也可能有所帮助 - 唉,我们暂时停留在 Java8 上。如果 Java9 能在这里帮助我,我仍然会很高兴知道。

正如我所说,我想弄清楚是否有一种合理的方法可以在 Java8 中对此进行测试(最好不使用 PowerMock,因为我们很难让它与 Gradle 很好地配合)。如果这真的不是单元测试的,我可以接受并继续。


白衣染霜花
浏览 92回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java