gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:29 26 4
gpt4 key购买 nike

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

我的测试方法到此结束:

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")
}

问题是测试被评估为失败,但当我查看手机时,会出现对话框并点击“确定”按钮, Controller 也正常。

我在调试窗口中遇到此错误:

UI Testing Failure - No matches found for Alert

我猜那个 Tap 有什么问题。我该如何解决?我做错了什么?谢谢

最佳答案

waitforExpectationsWithTimeout() 仅在超过超时时调用完成处理程序。只需将您的 Controller 断言移至异步等待调用下方。

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")

关于ios - UI 测试 - 等待对话框,然后点击确定按钮并检查 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com