我正在使用 CompletableFuture Java8 类在 Java 中异步进行网络调用,特别是使用该supplyAsync()方法。它工作得很好。我发现我可以使用CompletableFuture.completedFuture(). 我想弄清楚的是如何对异步任务期间抛出异常(即 、 或 )的CompletionException情况InterruptedException进行单元测试(如果可能)。ExecutionExceptionhttps://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 很好地配合)。如果这真的不是单元测试的,我可以接受并继续。
添加回答
举报
0/150
提交
取消