XCTest - 等待谓词失败
Posted
技术标签:
【中文标题】XCTest - 等待谓词失败【英文标题】:XCTest - Waiting for predicate fails 【发布时间】:2016-10-12 23:25:48 【问题描述】:我试图在 UI 测试期间等待一个字符串出现在导航栏中。当试图设置期望时,我得到一个“线程 1:断点 1.1”。我在这里做错了什么?
expectation(for: NSPredicate(format: "label CONTAINS 'Rent'"),
evaluatedWith: XCUIApplication().navigationBars.staticTexts,
handler: nil)
waitForExpectations(timeout: 10, handler: nil)
【问题讨论】:
你设置了断点吗?如果你这样做,请将其删除。 没有。没有设置断点。断点 1.1 通常表示一些内部异常。从那一点继续通常会提供更多信息,但在这种情况下不会。 【参考方案1】:好的,我想通了。您需要一个元素而不是查询。所以代码应该是:
expectation(for: NSPredicate(format: "exists == 1"),
evaluatedWith: XCUIApplication().navigationBars.staticTexts.
element(matching: NSPredicate(format: "label CONTAINS 'Rent'")),
handler: nil)
waitForExpectations(timeout: 10, handler: nil)
【讨论】:
更新为改进的匹配,因为以前并不总是正确匹配以上是关于XCTest - 等待谓词失败的主要内容,如果未能解决你的问题,请参考以下文章
如果 Partition 列不在 Where 谓词中,查询优化是不是会失败?