我有一个waitFor{}
块,里面有几行:
waitFor(timeOutSeconds) {
jobRow.clickUpdate()
processDialog.waitIfShown()
jobRow.statusCell.text() == status.value
}
任何对refreshWaitFor()方法的调用都将隐式断言添加到 传递给它的bloc中的每个表达式就像waitFor() 方法调用。
问题是processDialog.waitIfShown()
可以返回false,如果没有显示进度条,这实际上是可以的。
我只需要对最后一行进行验证即可,因此现在我写processDialog.waitIfShown() || true
来跳过此表达式验证。这可行,但看起来很奇怪。
是否有任何标志或选项可以关闭等待块中的隐式断言?
答案 0 :(得分:2)
如果您想为特定的waitFor()
调用禁用隐式断言,则否,当前不支持。但是,有多种解决方法:
org.gebish:geb-implicit-assertions
工件,则可以全局禁用隐式断言-这是geb-core
的传递依赖项,并且在所有主要构建系统中排除传递依赖项都是相对容易的processDialog.waitIfShown()
包装到以void
作为返回类型的方法中,则不会断言对该方法的调用waitFor()
调用-如果将条件闭合分配给变量,然后将该变量传递给waitFor()
调用,则该语句中没有语句关闭将被隐式断言如果您认为上述选项/解决方法不够充分,请随时在the tracker中提出问题。