sss*_*sss 5 testing ui-testing ios swift xcode-ui-testing
我想测试登录单击是否在仪表板屏幕上正确导航。
有没有办法做到这一点?
我目前的测试代码就像
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()
}
Run Code Online (Sandbox Code Playgroud)
当依赖于文本值时,UI 测试可能会变得非常脆弱。我鼓励您做的是为您的 ViewController 的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)
}
Run Code Online (Sandbox Code Playgroud)
尝试向后退按钮添加可访问性指示器,以便您可以使用backButton.exists或检查可用性backButton.hittable并相应地断言。无论如何,如果您设置
\n\n\n失败后继续 = false
\n
在setUp()中,如果\xe2\x80\x99找不到带有\xe2\x80\x9cBack\xe2\x80\x9d的按钮,你的测试就会失败。
\n| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |