【问题标题】:How to access a variable o watch a change in SwiftUI UI testing?如何访问变量以观察 SwiftUI UI 测试的变化?
【发布时间】:2021-02-14 20:51:04
【问题描述】:

我是使用 SwiftUI 进行 UI 测试的新手,我只是想知道:
如何在流程中访问变量或查看工作表外观?
例如。登录后,我想检查它是否成功,然后断言布尔值(指示哪个登录成功与否)或登录后表外观存在。

代码示例:

import XCTest
import SwiftUI
@testable import Formaloo

class when_the_user_types_username_and_password_and_press_login_button: XCTestCase {

  private var app: XCUIApplication!
  
  override func setUp() {
    super.setUp()
    
    self.app = XCUIApplication()
    self.app.launch()
  }
  
  func test_user_should_be_logged_in_with_correct_username_and_password() {
    
    let usernameTextField = app.textFields["usernameTextField"]
    let passwordTextField = app.secureTextFields["passwordTextField"]
    let loginButton = app.buttons["loginButton"]
    
    XCTAssert(usernameTextField.exists)
    XCTAssert(passwordTextField.exists)
    
    usernameTextField.tap()
    usernameTextField.typeText("*****")
    
    passwordTextField.tap()
    usernameTextField.typeText("*****")
    
    loginButton.tap()
    
    // I don't know how to check the login being successful here!
  }
}

【问题讨论】:

    标签: ios swift swiftui xctest xcode-ui-testing


    【解决方案1】:

    您已经知道如何在屏幕上查找内容,因此您只需要确定“什么,在使用正确的凭据点击登录按钮后证明我已登录?”

    成功消息? 全新的屏幕?是否有该屏幕独有的控件?

    使用exists 断言您期望存在的其中一件事情

    补充说明,在您从登录字段中提取值之后,没有理由断言它们存在;获取值证明它们在那里,因此断言是多余的。

    【讨论】:

    • 没错,我的问题是:如何找出变量已更改,或者如何确定 SwiftUI 中是否显示了工作表?
    • “显示的工作表”可以通过查找其上是否存在元素来断言。我认为您无法访问应用程序的变量,但我也从未深入研究过它。如果存在,这将是一个非常独特的功能。
    猜你喜欢
    • 2020-07-29
    • 2022-11-16
    • 2020-03-11
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多