<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>3.1.6</version>
<scope>test</scope>
</dependency>
import org.awaitility.Awaitility;
import static org.awaitility.Awaitility.*;
import static org.junit.Assert.*;
import java.util.concurrent.Callable;
@Test
public void testDelayedExecution() {
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Delayed Result";
});
String result = Awaitility.await().atMost(Duration.ofSeconds(6)).until(() -> future.join(), is("Delayed Result"));
assertEquals("Delayed Result", result);
}