私のテスト クラスでは、実際に一定時間スリープする必要があります。これは、定期的なリモート呼び出しを伴う統合テストです。
for (int i = 0; i < 16; i++) {
// sleep some... should sleep some...
Thread.sleep((int) TimeUnit.MINUTES.toMillis(4L)); // means as it means.
// call remote api and check the response.
}
Awaitility を使用した同等の表現は何ですか?
私は試した...
// Let's sleep for 4 minutes, no matter what happen!
Awaitility.await()
.atLeast(Duration.ofMinutes(4L)) // what the hell does this mean, anyway?
.untilTrue(new AtomicBoolean(false));
デフォルトのポーリング間隔の直後にタイムアウトが発生したようです。
この場合、最初に Awaitillity を使用するべきではないでしょうか?
ベストアンサー1
おそらく答えとしては遅すぎるかもしれませんが、それを実行する方法はいくつかあります。
これは、awaitility に 4 分間のポーリング遅延を指示します。したがって、アサーションを実行する前に 4 分間待機します。
Awaitility
.await()
.pollDelay(4, TimeUnit.MINUTES)
.untilAsserted(() -> Assert.assertTrue(true));