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
- La respuesta a continuación es mi intento de resolver esto, pero doy la bienvenida a cualquier respuesta mejor.
- He leído estas SO preguntas sobre Pruebas de UI en Xcode pero son diferentes: docs , reloading , App vs UI , ViewController , multiple , valores y propiedades , proyectos previos a XCode 7 .
+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 unUIButton
al guión gráfico
Cree un @IBOutlet y @IBAction en el
ViewController
y haga que el texto de lalabel
cambie cuando se presiona elbutton
.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 unXCTAssert
. 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
yUILabel
existen y que el texto de la etiqueta cambió. Si desea verlo fallar (una buena idea), puede cambiar "Hola" a otra cosa.