我正试图将等待性用于某些测试目的。
我试图使用的这段代码给我带来了问题:
await()
.atLeast(Duration.ONE_HUNDRED_MILLISECONDS)
.atMost(Duration.FIVE_SECONDS)
.with()
.pollInterval(Duration.ONE_HUNDRED_MILLISECONDS)
.until(result.contains("banana"));
结果是一个字符串变量,我在其中较早地在代码中保存了一些远程系统输出。 但是当我尝试像这样使用它时,出现以下错误:
“直到(java.util.concurrent.Callable) ConditionFactory无法应用于(布尔值)“
使用该库的正确方法是什么?我也想看看在我对获取的数据进行一堆断言之前,某些数据/文本字符串是否已设法从远程系统中检索到。
答案 0 :(得分:1)
until
需要采用函数,该函数返回一个布尔值(即Callable<Boolean>
),而不仅仅是一个布尔值。
result.contains("banana")
是一个返回布尔值的方法调用。这意味着.until(result.contains("banana"))
被评估为.until(false)
或.until(true)
答案 1 :(得分:1)
您需要付出,直到可收回。即
await().until(() -> result.contains("banana"));