3

我正在尝试将等待性用于某些测试目的。

我试图使用的这段代码给我带来了问题:

    await()
            .atLeast(Duration.ONE_HUNDRED_MILLISECONDS)
            .atMost(Duration.FIVE_SECONDS)
            .with()
            .pollInterval(Duration.ONE_HUNDRED_MILLISECONDS)
            .until(result.contains("banana"));

结果是一个字符串变量,我在代码的前面保存了一些远程系统输出。但是当我尝试像这样使用它时,我收到以下错误:

“直到 ConditionFactory 中的 (java.util.concurrent.Callable) 不能应用于 (boolean)”

使用图书馆的正确方法是什么?在我对获取的数据执行一堆断言之前,我也想看看是否已设法从我的远程系统中检索到某些数据/文本字符串。

4

2 回答 2

3

你需要给直到一个可调用的。IE

await().until(() -> result.contains("banana"));
于 2019-10-02T13:04:35.133 回答
1

until需要采用返回布尔值(即 a )的函数Callable<Boolean>,而不仅仅是布尔值。

result.contains("banana")是一个返回布尔值的方法调用。这意味着.until(result.contains("banana"))被评估为.until(false).until(true)

于 2019-10-02T12:58:52.683 回答