等待,轮询直到满足条件
Awaitatility, polling until condition is met
我正在尝试将等待性用于某些测试目的。
我尝试使用的这段代码给我带来了问题:
await()
.atLeast(Duration.ONE_HUNDRED_MILLISECONDS)
.atMost(Duration.FIVE_SECONDS)
.with()
.pollInterval(Duration.ONE_HUNDRED_MILLISECONDS)
.until(result.contains("banana"));
Result 是一个字符串变量,我在前面的代码中保存了一些远程系统输出。
但是当我尝试像这样使用它时,出现以下错误:
"until (java.util.concurrent.Callable) in
ConditionFactory cannot be applied to (boolean)"
图书馆的正确使用方法是什么?在我对获取的数据进行一系列断言之前,我也想看看是否某些 data/text 字符串已经设法从我的远程系统中检索到。
until
需要一个 函数 ,returns 一个布尔值(即 Callable<Boolean>
),而不仅仅是一个布尔值。
result.contains("banana")
是一个 returns 布尔值的方法调用。这意味着 .until(result.contains("banana"))
被评估为 .until(false)
或 .until(true)
您需要付出直到可赎回。即
await().until(() -> result.contains("banana"));
我正在尝试将等待性用于某些测试目的。
我尝试使用的这段代码给我带来了问题:
await()
.atLeast(Duration.ONE_HUNDRED_MILLISECONDS)
.atMost(Duration.FIVE_SECONDS)
.with()
.pollInterval(Duration.ONE_HUNDRED_MILLISECONDS)
.until(result.contains("banana"));
Result 是一个字符串变量,我在前面的代码中保存了一些远程系统输出。 但是当我尝试像这样使用它时,出现以下错误:
"until (java.util.concurrent.Callable) in ConditionFactory cannot be applied to (boolean)"
图书馆的正确使用方法是什么?在我对获取的数据进行一系列断言之前,我也想看看是否某些 data/text 字符串已经设法从我的远程系统中检索到。
until
需要一个 函数 ,returns 一个布尔值(即 Callable<Boolean>
),而不仅仅是一个布尔值。
result.contains("banana")
是一个 returns 布尔值的方法调用。这意味着 .until(result.contains("banana"))
被评估为 .until(false)
或 .until(true)
您需要付出直到可赎回。即
await().until(() -> result.contains("banana"));