我想為 JDA Discord Bot 創(chuàng)建一個(gè)(功能)測(cè)試系統(tǒng)。為此,我需要等到當(dāng)前隊(duì)列中的所有消息都發(fā)送完畢(消息使用 發(fā)送RestAction#queue)并測(cè)試是否有該消息。有沒(méi)有辦法等待所有排隊(duì)的RestActions或者我應(yīng)該指數(shù)級(jí)等待(例如等待0.5秒,等待1秒,等待2秒并測(cè)試消息是否存在)[注意] 我不想更改生產(chǎn)代碼中的queuetosubmit并將其發(fā)送到測(cè)試。
1 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
理想情況下,測(cè)試系統(tǒng)根本不應(yīng)該與互聯(lián)網(wǎng)交互。但是,要回答您的問(wèn)題,您可以使用提交返回的承諾而不是使用隊(duì)列來(lái)等待休息操作。
List<CompletableFuture<?>> list = new ArrayList<>();
list.add(action1.submit());
list.add(action2.submit());
...
CompletableFuture<Void> merged = CompletableFuture.allOf(list.toArray(new CompletableFuture[0]));
merged.whenComplete((v, error) -> {
? ? if (error != null) error.printStackTrace();
? ? else System.out.println("All futures completed successfully");
});
添加回答
舉報(bào)
0/150
提交
取消