Waity na wątkach działają na wątkach nie na oczekiwaniu na response.
Thread.sleep() może działać w większości przypadków gdy w rzeczywistości czekasz na wystąpienie określonego warunku lub stanu aplikacji. Thread.sleep() nie gwarantuje, że to, na co czekasz, faktycznie się wydarzyło.
Jeśli na przykład czekasz na odpowiedź z serwera - > może ona zwykle wraca za 5 sekund, ale jeśli ustawisz sen na 5 sekund w dniu, w którym żądanie powróci za 10 sekund, test zakończy się niepowodzeniem.
Jest taka bilbioteka jak Awatility , które jest idealne do zapewnienia, że określony stan wystąpi przed przejściem.
Jednak nie wiem jak wygląda twoje testowanie, generalnie testowanie powinieneś Mockować, a nie testować realnych danych. Zestaw danych też powinien być Mokowalny i wywołania z nim związane wywołane na przygotowanym setupie.
https://www.baeldung.com/mockserver
Ostatnia rzecz: nie wiem na ile zaawansowany jesteś w programowaniu, sądząc po pytaniu i stwierdzeniu chęci testowaniem waitami, raczej podejrzewam, że na samym początku. Polecam również pomyśleć o asynchroniczności w tym wypadku nie Future, ale guava: https://www.baeldung.com/guava-futures-listenablefuture daje Ci to gwarancje operacji nie blokujących samo Future niestety jest blokujące, bo usilnie oczekuje na pobranie.