我正在使用 CompletableFuture Java8 類(lèi)在 Java 中異步進(jìn)行網(wǎng)絡(luò)調(diào)用,特別是使用該supplyAsync()方法。它工作得很好。我發(fā)現(xiàn)我可以使用CompletableFuture.completedFuture(). 我想弄清楚的是如何對(duì)異步任務(wù)期間拋出異常(即 、 或 )的CompletionException情況InterruptedException進(jìn)行單元測(cè)試(如果可能)。ExecutionExceptionhttps://www.baeldung.com/java-completablefuture是一個(gè)起點(diǎn)和有用的來(lái)源,但沒(méi)有解決這個(gè)問(wèn)題。我的第一種方法無(wú)法編譯:final CompletableFuture<ResponseType> completableFutureException =
CompletableFuture.completedFuture(new InterruptedException());我的第二種方法可預(yù)見(jiàn)地在運(yùn)行時(shí)生成ClassCastException: final CompletableFuture completableFutureException =
CompletableFuture.completedFuture(new InterruptedException());java.lang.ClassCastException: java.lang.InterruptedException cannot be cast to ResponseType聽(tīng)起來(lái)CompletableFuture<U> newIncompleteFuture()Java9 中的方法也可能有所幫助 - 唉,我們暫時(shí)停留在 Java8 上。如果 Java9 能在這里幫助我,我仍然會(huì)很高興知道。正如我所說(shuō),我想弄清楚是否有一種合理的方法可以在 Java8 中對(duì)此進(jìn)行測(cè)試(最好不使用 PowerMock,因?yàn)槲覀兒茈y讓它與 Gradle 很好地配合)。如果這真的不是單元測(cè)試的,我可以接受并繼續(xù)。
添加回答
舉報(bào)
0/150
提交
取消