Szukaj…


Składnia

  • XCUIApplication () // Proxy dla aplikacji. Informacje identyfikujące aplikację są określone w ustawieniach docelowych Xcode jako „Aplikacja docelowa”.
  • XCUIElement () // Element interfejsu użytkownika w aplikacji.

Dodawanie plików testowych do projektu Xcode

Podczas tworzenia projektu

Należy zaznaczyć „Uwzględnij testy interfejsu użytkownika” w oknie dialogowym tworzenia projektu.

wprowadź opis zdjęcia tutaj

Po utworzeniu projektu

Jeśli przegapiłeś sprawdzanie UI target podczas tworzenia projektu, zawsze możesz dodać cel testowy później.

Setps:

  • Podczas otwierania projektu przejdź do File -> New -> Target
  • Znajdź iOS UI Testing Bundle

wprowadź opis zdjęcia tutaj

Identyfikator dostępności

Po włączeniu ułatwień dostępu w Narzędziach

  • Wybierz storyboard .
  • Rozwiń the Utilities
  • Wybierz Identity Inspector
  • Wybierz swój element w serii ujęć
  • Dodaj nowy identyfikator ułatwień dostępu (na przykład addButton )

wprowadź opis zdjęcia tutaj

Gdy dostępność jest wyłączona w Narzędziach

  • Wybierz storyboard .
  • Rozwiń the Utilities
  • Wybierz Identity Inspector
  • Wybierz swój element w serii ujęć
  • Dodaj atrybut w User Defined Runtime Attributes
  • Dla typu Key Path - accessibilityIdentifier
  • Dla Type - `Ciąg
  • Dla Value - nowy identyfikator dostępności dla Twojego elementu (w view przykładowym)

wprowadź opis zdjęcia tutaj

Konfiguracja w pliku UITest

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

W [ ] dodaj Identyfikator dostępności dla elementu.

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"]

Elementy UITableViewCell

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"]
  • hasło UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]

UITextView

let textView = app.textViews["textView"]

UISwitch

let switch = app.switches["switch"]

Alerty

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

Wyłącz animacje podczas testowania interfejsu użytkownika

W teście możesz wyłączyć animacje, dodając w setUp :

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

Gdzie app jest instancją XCUIApplication.

Obiad i zakończ aplikację podczas wykonywania

Aplikacja na lunch do testowania

override func setUp() {
    super.setUp()

    let app = XCUIApplication()

    app.launch()
}

Zakończenie aplikacji

func testStacOverFlowApp() {
    
    app.terminate()
}

Obróć urządzenia

Urządzenie można obracać, zmieniając orientation w XCUIDevice.shared().orientation

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow