Поиск…


Синтаксис

  • XCUIApplication () // Прокси для приложения. Информация, идентифицирующая приложение, указана в целевых настройках Xcode как «Target Application».
  • XCUIElement () // Элемент пользовательского интерфейса в приложении.

Добавление тестовых файлов в проект Xcode

При создании проекта

Вы должны проверить «Включить тесты пользовательского интерфейса» в диалоговом окне создания проекта.

введите описание изображения здесь

После создания проекта

Если вы пропустили проверку UI target при создании проекта, вы всегда можете добавить тестовый результат позже.

Setps:

  • Пока проект открыт, перейдите в File -> New -> Target
  • Найдите iOS UI Testing Bundle

введите описание изображения здесь

Идентификатор доступности

Когда доступность доступна в Утилитах

  • Выберите storyboard .
  • Развернуть the Utilities
  • Выберите Identity Inspector
  • Выберите свой элемент в раскадровке
  • Добавить новый идентификатор доступности (в примере addButton )

введите описание изображения здесь

Когда функция доступности отключена в утилитах

  • Выберите storyboard .
  • Развернуть the Utilities
  • Выберите Identity Inspector
  • Выберите свой элемент в раскадровке
  • Добавить атрибут в User Defined Runtime Attributes
  • Тип Key Path - accessibilityIdentifier
  • Для Type - `String
  • Для Value - новый идентификатор доступности для элемента (например , в view )

введите описание изображения здесь

Настройка в файле 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()
    }    
}

В [ ] добавить идентификатор доступности для элемента.

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

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

  • нормальный UITextField
let textField = app.textFields["textField"]
  • пароль UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]

UITextView

let textView = app.textViews["textView"]

UISwitch

let switch = app.switches["switch"]

Оповещения

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

Отключить анимацию во время тестирования пользовательского интерфейса

В тесте вы можете отключить анимацию, добавив в setUp :

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

Где app является экземпляром XCUIApplication.

Запуск и завершение приложения во время выполнения

Заявка на обед для тестирования

override func setUp() {
    super.setUp()

    let app = XCUIApplication()

    app.launch()
}

Завершение заявки

func testStacOverFlowApp() {
    
    app.terminate()
}

Поворот устройств

Устройство можно повернуть, изменив orientation в XCUIDevice.shared().orientation :

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow