UI测试-等待对话框,然后点击确定按钮并检查控制器



我正在尝试为我的控制器创建UI测试。我填写文本字段并点击按钮,现在我想等待对话框出现,当它出现时,我想点击Ok按钮并检查显示的控制器。

我的测试方法到此结束:

let alert = app.alerts["Error"]
let exists = NSPredicate(format: "exists == 1")
self.expectationForPredicate(exists, evaluatedWithObject: alert, handler: nil)
self.waitForExpectationsWithTimeout(5.0) { (error) in
  XCTAssertNil(error, "Something went horribly wrong")
  alert.buttons["Ok"].tap()
  XCTAssertEqual(app.navigationBars.element.identifier, "RegistrationViewController")
}

问题是测试被评估为失败,但当我看手机时,对话框出现,点击Ok按钮,控制器也很好。

我在调试窗口中遇到此故障:

UI测试失败-找不到警报的匹配项

我想水龙头有什么问题。我该怎么修?我做错了什么?感谢

waitforExpectationsWithTimeout()仅在超时时调用完成处理程序。只需将控制器断言移动到异步等待调用下面。

let alert = app.alerts["Error"]
let exists = NSPredicate(format: "exists == 1")
expectation(for: exists, evaluatedWith: alert, handler: nil)
waitForExpectations(timeout: timeout, handler: nil)
alert.buttons["Ok"].tap()
XCTAssertEqual(app.navigationBars.element.identifier, "RegistrationViewController")

最新更新