Buscar..


Sintaxis

  • XCUIApplication () // Proxy para una aplicación. La información que identifica la aplicación se especifica en la configuración de destino de Xcode como la "Aplicación de destino".
  • XCUIElement () // Un elemento de interfaz de usuario en una aplicación.

Agregando archivos de prueba a Xcode Project

Al crear el proyecto.

Debe marcar "Incluir pruebas de IU" en el cuadro de diálogo de creación de proyecto.

introduzca la descripción de la imagen aquí

Después de crear el proyecto.

Si no pudo comprobar el UI target al crear un proyecto, siempre podría agregar un objetivo de prueba más tarde.

Setps:

  • Mientras el proyecto está abierto, vaya a File -> New -> Target
  • Encuentra iOS UI Testing Bundle

introduzca la descripción de la imagen aquí

Identificador de accesibilidad

Cuando la accesibilidad habilitada en Utilidades

  • Seleccione storyboard .
  • Expandir the Utilities
  • Seleccione Identity Inspector
  • Selecciona tu elemento en el guión gráfico.
  • Agregar nuevo identificador de accesibilidad (en el ejemplo addButton )

introduzca la descripción de la imagen aquí

Cuando la accesibilidad está deshabilitada en Utilidades

  • Seleccione storyboard .
  • Expandir the Utilities
  • Seleccione Identity Inspector
  • Selecciona tu elemento en el guión gráfico.
  • Añadir atributo en los atributos de User Defined Runtime Attributes
  • Para el tipo de Key Path accessibilityIdentifier Key Path - accessibilityIdentifier
  • Para Type - `Cadena
  • Para Value : nuevo identificador de accesibilidad para su elemento (en la view ejemplo)

introduzca la descripción de la imagen aquí

Configuración en el archivo 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()
    }    
}

En [ ] agregue el identificador de accesibilidad para el elemento.

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

Elementos de 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
let textField = app.textFields["textField"]
  • contraseña UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]

UITextView

let textView = app.textViews["textView"]

UISwitch

let switch = app.switches["switch"]

Las alertas

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

Deshabilitar animaciones durante la prueba de interfaz de usuario

En una prueba puedes deshabilitar animaciones agregando en setUp :

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

Donde la app es instancia de XCUIApplication.

Almuerzo y finalización de la aplicación mientras se ejecuta.

Aplicación de almuerzo para pruebas.

override func setUp() {
    super.setUp()

    let app = XCUIApplication()

    app.launch()
}

Aplicación de terminación

func testStacOverFlowApp() {
    
    app.terminate()
}

Rotar dispositivos

El dispositivo se puede girar cambiando la orientation en XCUIDevice.shared().orientation :

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow