我想测试登录点击是否在仪表板屏幕上正确导航。
有什么方法可以做到这一点吗?
我目前的测试代码是这样的
func testExample() {
let usernameTextField = app.textFields["Username"]
usernameTextField.tap()
usernameTextField.typeText("abc@gmail.com")
let passwordTextField = app.textFields["Password"]
passwordTextField.tap()
passwordTextField.typeText("abc123")
app.buttons["Login" ].tap()
//let loginButton = app.staticTexts["Login"]
//XCTAssertEqual(loginButton.exists, true)
app.navigationBars["UIView"].buttons["Back"].tap()
}
最佳答案
当依赖于文本值时,UI 测试会变得非常脆弱。我鼓励您为 ViewController 的 view
设置辅助功能标识符。这样,即使您更改标题或更改整个布局,您仍然可以确保您位于正确的页面/屏幕/ View 中。
class DashVC: UIViewController {
override func viewDidLoad() {
view.accessibilityIdentifier = "view_dashboard"
}
}
func test_login_withValidInput_goesDashBoard() {
let app = XCUIApplication()
//...
app.buttons["Login" ].tap()
let dashBoardView = app.otherElements["view_dashboard"]
let dashBoardShown = dashBoardView.waitForExistence(timeout: 5)
XCTAssert(dashBoardShown)
}
关于ios - 如何编写 XCUI 测试是否导航到正确的屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45657788/