0

我正在编写一个 UI 测试,它需要异步加载数据,然后对单元格中显示的数据进行一些验证。

在这种情况下,如果没有数据加载测试通过并且不应该通过,所以我需要确保我至少有一个基于远程数据加载的单元格。

func testTableViewCellDoesNotContainItem() {
  ...setup....

  // Load data 
  app.keyboards.buttons["Search"].tap()
  XCTAssert(app.tables["TableView"].cells.count > 0)

  ...other check...
}
4

1 回答 1

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...
}
于 2017-10-12T15:34:30.570 回答