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

一只斗牛犬
TA貢獻1784條經(jīng)驗 獲得超2個贊
理想情況下,測試系統(tǒng)根本不應該與互聯(lián)網(wǎng)交互。但是,要回答您的問題,您可以使用提交返回的承諾而不是使用隊列來等待休息操作。
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");
});
添加回答
舉報
0/150
提交
取消