gpt4 book ai didi

ios - 如何使用 XCTest 在以编程方式添加的 UIView 上测试 UILabel

转载 作者:搜寻专家 更新时间:2023-11-01 07:02:31 25 4
gpt4 key购买 nike

我想测试我的 dashboardLabel.text,但我不知道如何通过 XCTest 访问它。

DashboardView.swift 看起来像这样:

import UIKit

class DashBoardView: UIView {

override init(frame: CGRect) {
super.init(frame: frame)

createSubviews()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
fatalError("init(coder:) has not been implemented")
}

// MARK: - Create Subviews

func createSubviews() {
backgroundColor = .white

var dashboardLabel : UILabel

dashboardLabel = {
let label = UILabel()
label.text = "Dashboard Label"
label.textColor = .black
label.frame = CGRect(x:60, y:80, width: 200, height: 30)
label.backgroundColor = .green
label.backgroundColor = .lightGray
label.font = UIFont(name: "Avenir-Oblique", size: 13)
label.textAlignment = .center
return label
}()

}

DashboardViewController.swift 看起来像这样:

import UIKit

class DashBoardViewController: UIViewController {

var dashboardview = DashBoardView()

//MARK: View Cycle
override func loadView() {
view = dashboardview
}

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}

override func viewDidLoad() {
super.viewDidLoad()

title = "DashBoard"
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

}

我知道如何测试 DashboardViewController.swift 的标题

import XCTest
@testable import DashBoard

class DashBoardTests: XCTestCase {
func test_if_title_is_DashBoard() {

let vc = DashBoardViewController()
let _ = vc.view
XCTAssertEqual(vc.navigationItem.title, "Dashboard")
}

但我完全不知道如何访问 DashBoardView.swift 上的 dashboardLabel

我希望这能解释我的问题,你们中的任何人都可以帮助我,或者为我指明正确的方向!

谢谢✌️

最佳答案

您可以使用 accessibilityIdentifier 来做到这一点

引用:iOS XCUITests access element by accesibility

关于ios - 如何使用 XCTest 在以编程方式添加的 UIView 上测试 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50288637/

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