Guía para principiantes sobre pruebas unitarias con Xcode

La construcción de software es un proceso complejo. Más allá de dominar las diversas herramientas y lenguajes de programación, también hay que entender varios roles de desarrollo de software. Como la mayoría de nosotros sabemos, los grandes proyectos no sólo implican la codificación. Los grandes proyectos también implican otros recursos para la recopilación de requisitos, la creación de prototipos y las pruebas.

El proceso de validación del código se conoce a menudo como Garantía de Calidad. Sin embargo, la frase es algo engañosa. En lugar de asegurar la calidad del código, el verdadero objetivo es medirla, a menudo a medida que el proyecto evoluciona. También conocido como desarrollo dirigido por pruebas (por ejemplo, TDD), esta sutil diferencia puede verse al examinar los roles de la función de calidad. Estos incluyen los siguientes:

¿POR QUÉ PRUEBAS DE UNIDAD?

Como se muestra, la medición de la calidad a menudo se agrupa en actividades automatizadas y manuales. Como alguien interesado en los algoritmos, el código adicional conocido como pruebas unitarias funciona para probar su proyecto de software principal. Las pruebas unitarias suelen ser escritas por los desarrolladores y son el centro de atención en un entorno TDD. Por ejemplo, las pruebas unitarias son esenciales en el desarrollo de este libro. Utilizando el Framework XCTest de iOS, vamos a repasar cómo funcionan las pruebas unitarias en Swift.

TRABAJO CON XCTEST

Si te has familiarizado con los conceptos de Swift revisados en el libro, aprender a escribir pruebas unitarias debería ser sencillo. Como se discutió, las pruebas unitarias funcionan para ejercitar el código que carece de una interfaz de usuario final. Para ilustrar, revisemos los casos de prueba que ejercitan una estructura de datos Stack.

Aunque el libro no revisa las particularidades del Entorno de Desarrollo Integrado (IDE) Xcode, hay que tener en cuenta que las pruebas se pueden ejecutar por función, clase u objetivo. Usando Xcode, las pruebas unitarias se establecen añadiendo un nuevo Test Target a su proyecto de código principal. Una vez configuradas, las pruebas unitarias pueden ejecutarse desde el IDE o desde la línea de comandos.

NORMAS DE PRUEBA

Aunque no es obligatorio, se considera una buena práctica que el archivo de pruebas unitarias coincida estrechamente con la convención de nombres de nuestro(s) archivo(s) de implementación. En nuestro caso, usaremos StackTest.swift. Para acceder a los métodos y propiedades principales de Stack desde nuestro proyecto principal, el archivo también incluirá una declaración de importación comprobable:

Al igual que otros marcos de pruebas unitarias, XCTest funciona integrando características del lenguaje Swift con funciones específicas relacionadas con las pruebas. Los métodos esenciales se agrupan como aserciones. Al crear pruebas, el compilador reconocerá las pruebas unitarias con funciones prefijadas con la palabra clave test.

A diferencia de las funciones regulares de Swift, las pruebas unitarias están diseñadas intencionadamente como unidades autónomas de lógica. Como resultado, los métodos de prueba no aceptan argumentos y no devuelven valores. Alternativamente, los datos de la prueba pueden ser manejados a través de métodos de ayuda y secuencias de inicialización / desmontaje. Considere lo siguiente:

PLANIFICACIÓN DE PRUEBAS

Como se discutió, la operación principal de una estructura de datos de la pila es agregar y eliminar elementos. En lugar de escribir una sola función para probar todas las operaciones, nuestro plan de pruebas aísla cada operación principal de la Pila con su propia prueba. Como se ha visto con testPushStack, la aserción XCTAssertTrue comprueba la correcta inicialización de la variable Stack.count. El siguiente paso consiste en ejercitar Stack.push iterando a través del array de elementos de numberList. Para verificar que cada prueba emplea los mismos datos, numberList se rellena utilizando el método de configuración de la clase XCTestCase.

Con la prueba unitaria para añadir elementos de Stack implementada, podemos escribir la siguiente prueba para eliminar elementos:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.