Тест пользовательского интерфейса, чтобы проверить, что элемент не работает в Swift - PullRequest
0 голосов
/ 29 января 2020

Я просмотрел дюжину различных учебных пособий, статей и c., Но, похоже, у меня ничего не работает. Я прилагаю код простого теста пользовательского интерфейса в Swift, чтобы увидеть, существует ли секция ящика. Есть идеи, почему мой тест не проходит (не потому, что я обнаружил ошибку, а потому, что мой тест пользовательского интерфейса написан неправильно)? Спасибо!

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()
    }
}

1 Ответ

0 голосов
/ 30 января 2020

Я решил свою проблему.

Что я сделал:

  • Я удалил старую версию 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()
    }
}
...