ios xcode ui-testing xcode-ui-testing

ios - Ejemplo de Xcode UI Test



ui-testing xcode-ui-testing (2)

Acabo de aprender recientemente sobre Unit Testing en Xcode . Ahora estoy probando Xcode 7 y veo que hay un nuevo grupo para Pruebas de UI cuando creo un nuevo proyecto.

Vi el video de la WWDC 2015 y fue bastante bueno, pero ¿tienes un ejemplo súper simple de lo que podría pasar? Los ejemplos de video fueron un poco demasiado complejos para mí.

Notas


+1 para la respuesta. Una cosa observé y quiero compartir que cada función dentro del caso de prueba de UI debe comenzar con "prueba". Puedes añadir un nombre extra después de eso. Sólo de esta manera aparece el botón (para hacer clic para iniciar la prueba).


Use Pruebas Unitarias para probar la validez de los métodos en sus clases. Los usas para probar el código que has escrito. (Vea mi otro ejemplo para configurar una prueba de unidad simple en Xcode).

Use UI Tests para verificar la validez de la interfaz de usuario. Piense en ello como tener su propio robot para realizar y hacer todas las interacciones normales con su aplicación que un usuario normal haría. Esto te ahorra el tiempo de hacerlo tú mismo.

En el momento de escribir este artículo, es difícil acceder a muchas de las propiedades de los componentes de la interfaz de usuario, pero el solo hecho de realizar una prueba al tocarlos y deslizarlos confirma que están allí.

Ejemplo

Se trata de la configuración más simple y la prueba de la interfaz de usuario que se me ocurre: un botón que cuando se presiona cambia el texto de una etiqueta.

Preparar

  • Cree un nuevo proyecto en Xcode 7+ para iOS 9.0+.
  • Asegúrese de que la opción Incluir pruebas de interfaz de usuario esté marcada

  • Si agrega pruebas de UI a un proyecto creado antes de Xcode 7, vea esta respuesta . (Archivo> Nuevo> Objetivo> Prueba> Paquete de pruebas de IU de Cocoa Touch)

  • Agrega un UILabel y un UIButton al guión gráfico

  • Cree un @IBOutlet y @IBAction en el ViewController y haga que el texto de la label cambie cuando se presiona el button .

    import UIKit class ViewController: UIViewController { @IBOutlet weak var label: UILabel! @IBAction func button(sender: AnyObject) { label.text = "Hello" } }

Hacer la prueba

  • Abra el archivo de YourProject UITests.

  • Ponga su cursor en el método testExample() . (Puedes borrar los comentarios)

  • Presiona el botón rojo Grabar

  • En la aplicación, (1) toque la etiqueta, (2) toque el botón y luego (3) vuelva a tocar la etiqueta. (4) Presione nuevamente el botón Grabar para detener la grabación. El siguiente código debería haberse generado automáticamente para usted:

    func testExample() { let app = XCUIApplication() app.staticTexts["Label"].tap() app.buttons["Button"].tap() app.staticTexts["Hello"].tap() }

  • Use las líneas staticText como punto de partida para hacer un XCTAssert . Ahora deberías tener:

    func testExample() { let app = XCUIApplication() XCTAssert(app.staticTexts["Label"].exists) app.buttons["Button"].tap() XCTAssert(app.staticTexts["Hello"].exists) }

  • Presione el diamante de la izquierda para ejecutar la prueba de interfaz de usuario. Debería volverse verde cuando pasa.

  • ¡Eso es! Esto demostró que UIButton y UILabel existen y que el texto de la etiqueta cambió. Si desea verlo fallar (una buena idea), puede cambiar "Hola" a otra cosa.

Estudio adicional