Por qué las pruebas no son solo una "casilla de verificación", sino su salvavidas
\n\nImagine: escribió una aplicación genial en Swift, todo funciona, sus amigos están encantados. Pero pasa una semana, agrega una nueva función y ¡pum! Todo se rompe. ¿Le suena familiar? Si no, o es un genio o aún no se ha enfrentado al desarrollo real. Probar el código no es una obligación aburrida, sino una herramienta que ahorra horas de nervios y lo convierte en un desarrollador seguro.
\n\nEn este artículo, analizaremos por dónde empezar con las pruebas en Swift si es principiante. Aprenderá qué es XCTest, cómo escribir pruebas unitarias y pruebas de UI, y obtendrá ejemplos de código listos. ¡Allá vamos!
\n\n¿Qué son las pruebas en Swift y por qué son necesarias?
\n\nLas pruebas son el proceso de verificar que su código hace exactamente lo que usted espera. En el mundo de Swift, el framework principal para esto es XCTest. Está integrado en Xcode y permite escribir pruebas de cualquier nivel: desde verificar una sola función hasta simular pulsaciones de botones por parte del usuario.
\n\nAquí hay tres razones principales por las que vale la pena dominar las pruebas en Swift ahora mismo:
\n- \n
- Confianza en el código. Deja de tener miedo de cambiar o refactorizar algo: las pruebas lo respaldarán. \n
- Ahorro de tiempo. Es mejor dedicar 10 minutos a una prueba que 2 horas buscando un error en producción. \n
- Documentación. Las pruebas son documentación viva de su código. Un nuevo desarrollador (o usted mismo dentro de un mes) entenderá la lógica sin palabras adicionales. \n
Para los principiantes, las pruebas en iOS pueden parecer difíciles, pero en realidad el primer paso se da en 5 minutos.
\n\nConfiguración del entorno: primera prueba en 5 minutos
\n\nAbra Xcode y cree un nuevo proyecto (File → New → Project → App). Asegúrese de que la casilla Include Tests esté activa. Xcode creará automáticamente dos objetivos:
\n- \n
YourAppTests— para pruebas unitarias. \n YourAppUITests— para pruebas de UI. \n
Si el proyecto ya existe, agregue el objetivo de prueba manualmente: File → New → Target → iOS Unit Testing Bundle.
\n\nAhora haga clic en el archivo YourAppTests.swift. Verá una plantilla de clase heredada de XCTestCase. Elimine todo y escriba su primera prueba:
import XCTest\n@testable import YourApp\n\nfinal class FirstTests: XCTestCase {\n\n func testExample() {\n let result = 2 + 2\n XCTAssertEqual(result, 4, "¡Las matemáticas fallaron!")\n }\n}\n\n\nPresione el rombo a la izquierda de la línea func testExample y seleccione Test. Si aparece una marca de verificación verde, ¡acaba de escribir su primera prueba unitaria en Swift! Felicidades.
Observe @testable import YourApp. Esta es una línea clave: abre el acceso a las clases internas de su aplicación para que las pruebas puedan verlas.
Pruebas unitarias: verificamos la lógica de la aplicación
\n\nLas pruebas unitarias son la base. Verifican funciones, métodos o clases individuales. Escribamos una prueba para una calculadora simple.
\n\nCreando el código a probar
\n\nAgregue un nuevo archivo Swift al objetivo principal (¡no a las pruebas!) con la clase:
\n\nimport Foundation\n\nstruct Calculator {\n func add(_ a: Int, _ b: Int) -> Int {\n return a + b\n }\n \n func divide(_ a: Int, _ b: Int) throws -> Int {\n guard b != 0 else {\n throw CalculationError.divisionByZero\n }\n return a / b\n }\n}\n\nenum CalculationError: Error {\n case divisionByZero\n}\n\n\nEscribiendo las pruebas
\n\nEn el archivo de pruebas (recuerde, está en el grupo YourAppTests) escribiremos:
import XCTest\n@testable import YourApp\n\nfinal class CalculatorTests: XCTestCase {\n\n var calculator: Calculator!\n\n override func setUpWithError() throws {\n calculator = Calculator()\n }\n\n override func tearDownWithError()