我正在编写一个需要异步加载数据的UI测试,然后对单元格中显示的数据进行一些验证。
在这种情况下,如果没有数据加载测试通过,则不应该这样,我需要确保我至少有一个基于远程数据加载的单元格。
func testTableViewCellDoesNotContainItem() {
...setup....
// Load data
app.keyboards.buttons["Search"].tap()
XCTAssert(app.tables["TableView"].cells.count > 0)
...other check...
}
答案 0 :(得分:1)
能够通过以下方式实现预期效果:
func testTableViewCellDoesNotContainItem() {
...setup....
// Prep expectation for async load ensuring that we have at least one cell and the service call worked
let loaded = NSPredicate(format: "count > 0")
expectation(for: loaded, evaluatedWith: app.tables["TableView"].cells, handler: nil)
// Load data
app.keyboards.buttons["Search"].tap()
waitForExpectations(timeout: 5, handler: nil)
...other check...
}