如何访问变量或观察 SwiftUI UI 测试中的变化?

How to access a variable o watch a change in SwiftUI UI testing?

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

代码示例:

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!
  }
}

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

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

使用 exists

断言您期望存在的事物之一

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