Sök…


Syntax

  • XCUIA-ansökan () // Proxy för en applikation. Informationen som identifierar applikationen anges i Xcode-målinställningarna som "Target Application".
  • XCUIElement () // Ett användargränssnittselement i en applikation.

Lägga till testfiler till Xcode Project

När du skapar projektet

Du bör markera "Inkludera UI-test" i projektdialogrutan.

ange bildbeskrivning här

Efter att ha skapat projektet

Om du missade att kontrollera UI target när du skapade projekt, kan du alltid lägga till testmål senare.

Setps:

  • När projektet är öppet går du till File -> New -> Target
  • Hitta iOS UI Testing Bundle

ange bildbeskrivning här

Tillgänglighetsidentifierare

När tillgänglighet aktiverad i Verktyg

  • Välj storyboard .
  • Expandera the Utilities
  • Välj Identity Inspector
  • Välj ditt element på storyboard
  • Lägg till en ny tillgänglighetsidentifierare (i exempel addButton )

ange bildbeskrivning här

När tillgänglighet är inaktiverad i Verktyg

  • Välj storyboard .
  • Expandera the Utilities
  • Välj Identity Inspector
  • Välj ditt element på storyboard
  • Lägg till attribut i User Defined Runtime Attributes
  • För Key Path typ - accessibilityIdentifier
  • För Type - `String
  • För Value - ny tillgänglighet identifierare för din del (i exempel view )

ange bildbeskrivning här

Ställa in i UITest-fil

import XCTest

class StackOverFlowUITests: XCTestCase {

    private let app = XCUIApplication()

    //Views

    private var view: XCUIElement!

    //Buttons

    private var addButton: XCUIElement!


    override func setUp() {
        super.setUp()
    
        app.launch()
    
        //Views
    
        view = app.otherElements["view"]
    
        //Buttons
    
        addButton = app.buttons["addButton"]
    }

    func testMyApp() {

        addButton.tap()
        view.tap()
    }    
}

I [ ] lägg till Accessibility Identifier för element.

UIView, UIImageView, UIScrollView

let imageView = app.images["imageView"]
let scrollView = app.scrollViews["scrollView"]
let view = app.otherElements["view"]

UILabel

let label = app.staticTexts["label"]

UIStackView

let stackView = app.otherElements["stackView"]

UITableView

let tableView = app.tables["tableView"]

UITableViewCell

let tableViewCell = tableView.cells["tableViewCell"]

UITableViewCell-element

let tableViewCellButton = tableView.cells.element(boundBy: 0).buttons["button"]

UICollectionView

let collectionView = app.collectionViews["collectionView"]

UIButton, UIBarButtonItem

let button = app.buttons["button"]
let barButtonItem = app.buttons["barButtonItem"]

UITextField

  • normal UITextField
let textField = app.textFields["textField"]
  • lösenord UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]

UITextView

let textView = app.textViews["textView"]

UISwitch

let switch = app.switches["switch"]

varningar

let alert = app.alerts["About yourself"] // Title of presented alert

Inaktivera animationer under UI-testning

I ett test kan du inaktivera animationer genom att lägga till i setUp :

    app.launchEnvironment = ["animations": "0"]

Där app är exempel på XCUIA-ansökan.

Lunch och avsluta ansökan när du kör

Lunchapplikation för testning

override func setUp() {
    super.setUp()

    let app = XCUIApplication()

    app.launch()
}

Avsluta ansökan

func testStacOverFlowApp() {
    
    app.terminate()
}

Rotera enheter

Enheten kan roteras genom att ändra orientation i XCUIDevice.shared().orientation :

XCUIDevice.shared().orientation = .landscapeLeft
XCUIDevice.shared().orientation = .portrait


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow