Pruebas en Swift: por dónde empezar para un desarrollador principiante

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Por qué las pruebas no son solo una "casilla de verificación", sino su salvavidas

\n\n

Imagine: 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\n

En 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\n

Las 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\n

Aquí 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
\n\n

Para los principiantes, las pruebas en iOS pueden parecer difíciles, pero en realidad el primer paso se da en 5 minutos.

\n\n

Configuración del entorno: primera prueba en 5 minutos

\n\n

Abra 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
\n\n

Si el proyecto ya existe, agregue el objetivo de prueba manualmente: File → New → Target → iOS Unit Testing Bundle.

\n\n

Ahora haga clic en el archivo YourAppTests.swift. Verá una plantilla de clase heredada de XCTestCase. Elimine todo y escriba su primera prueba:

\n\n
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\n

Presione 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.

\n\n

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.

\n\n

Pruebas unitarias: verificamos la lógica de la aplicación

\n\n

Las pruebas unitarias son la base. Verifican funciones, métodos o clases individuales. Escribamos una prueba para una calculadora simple.

\n\n

Creando el código a probar

\n\n

Agregue un nuevo archivo Swift al objetivo principal (¡no a las pruebas!) con la clase:

\n\n
import 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\n

Escribiendo las pruebas

\n\n

En el archivo de pruebas (recuerde, está en el grupo YourAppTests) escribiremos:

\n\n
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()                

Blogs

Book Recommendations