UI 测试以检查项目是否存在在 Swift 中不起作用

UI Test to check if an item exists is not working in Swift

我浏览了很多不同的教程、文章等,但似乎对我没有任何帮助。我在 Swift 中附加了一个简单的 UI 测试代码,以查看抽屉的一部分是否存在。我的测试失败的任何想法(不是因为我发现了错误,而是因为我的 UI 测试写错了)?谢谢!

import XCTest
var app: XCUIApplication!


class MyAppUITests: XCTestCase {

    override func setUp() {
        super.setUp()
        continueAfterFailure = false
        app = XCUIApplication()
        app.launchArguments.append("--uitesting")
        app.launch()
    }

    func testDrawerDisplaysPrivacyAgreement() {   app.navigationBars["MyApp.MainView"].buttons["burgerButton"].tap()

        XCTAssertTrue(app.tables.staticTexts["Privacy Policy"].exists)


    }

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

我解决了我的问题。

我做了什么:

  • 我删除了旧版本的 MyAppUITests。
  • 从现在开始,我每次创建测试时都会添加 let app = XCUIApplication(); app.launch()

下面的测试成功通过!这非常适合我。 :)

import XCTest
var app: XCUIApplication!


class MyAppUITests: XCTestCase {

    override func setUp() {
        super.setUp()
        continueAfterFailure = false
    // Delete these. Doesn't work if put here and not in each test
    //    app = XCUIApplication()
    //    app.launchArguments.append("--uitesting")
    //    app.launch()
    }

    func testDrawerDisplaysPrivacyAgreement() {   
//  ** These two should be written in each test 
// **
        let app = XCUIApplication()
        app.launch()
// **

       let burgerButtonMenu =         app.navigationBars["MyApp.MainView"].buttons["burgerButton"]
        burgerButtonMenu.tap()
        let privacy = app.tables.staticTexts["Privacy Policy"]

        if  burgerButtonMenu.isEnabled && burgerButtonMenu.isSelected {
            XCTAssertTrue(privacy.exists)


    }

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