9.2. Pruebas unitarias¶
Son una técnica de depuración que se enfoca en validar el funcionamiento de unidades individuales de código, como funciones o métodos, de forma aislada. Su objetivo es asegurarse de que cada componente del software cumpla con su propósito específico, sin depender de otros módulos.
Al automatizar estas pruebas, los desarrolladores pueden detectar errores de manera temprana, mejorando la calidad del código y reduciendo los costos de corrección en etapas posteriores del desarrollo. Las pruebas unitarias son esenciales en el desarrollo ágil, ya que permiten realizar cambios rápidos y seguros en el código, garantizando que las modificaciones no afecten negativamente el funcionamiento del sistema.
Estas pruebas verifican el funcionamiento de las unidades más pequeñas de un programa, normalmente funciones o métodos individuales. El propósito es garantizar que cada unidad de código funcione correctamente de manera aislada antes de integrarse en el sistema completo.
9.2.1. Importancia¶
Son fundamentales para mejorar la calidad del software. Detectan errores en una etapa temprana del desarrollo, reducen costos de mantenimiento y proporcionan documentación sobre el comportamiento esperado del código. Además, permiten realizar cambios en el código sin miedo a introducir nuevos errores.
9.2.2. Herramientas populares¶
Existen varias herramientas populares para realizar pruebas unitarias:
Nombre |
Licencia |
Forma parte de |
Categoría |
Categoría Especial |
Licencia MIT |
librería estándar de Python. |
Pruebas unitarias |
Shell IPython para el símbolo del sistema y la aplicación inclusiva. |
|
Licencia MIT |
librería estándar de Python. |
Pruebas unitarias |
Coleccción rápida de pruebas y ejecución flexible de las mismas. |
|
Licencia MIT |
Autónomo, permite suites de prueba compactas. |
Pruebas unitarias |
Clase especial y sencilla para facilitar las pruebas. |
|
Licencia ASF |
Librerías de pruebas genéricas de Python. |
Pruebas de aceptación |
Enfoque de pruebas basado en palabras clave. |
|
Licencia BSD |
Lleva las características de |
Extensión de
|
Un gran número de plugins. |
|
Licencia ASF |
Lleva las características de |
Extensión de
|
Mejora del descubrimiento de pruebas. |
En este articulo se explicará como utilizar el módulo unittest, que es la librería estándar de Python para realizar
pruebas unitarias.
9.2.3. Instalación¶
El módulo unittest esta incluida en librería estándar de Python, puede probar la
instalación existe, ejecutando el siguiente comando:
python3 -c "import unittest ; print(unittest.__package__)"
python3 -c "import unittest ; print(unittest.__package__)"
Si muestra el nombre del módulo unittest, tiene correctamente instalado el módulo.
Con esto, ya tiene todo listo para continuar.
9.2.4. Práctica - Caso real¶
A continuación se presenta una práctica más real de implementar el uso de proyectos
con unittest, a continuación la estructura de proyecto llamado unitarias:
9.2.4.1. Estructura de archivos¶
Para crear la estructura de archivos del proyecto unittest debe ejecutar los siguientes comandos:
Crear y acceder al directorio unitarias en un solo comando, ejecutando el siguiente comando:
mkdir -p ~/proyectos/pruebas/unitarias && cd $_
El comando anterior crea la siguiente estructura de directorios:
proyectos/
└── pruebas/
└── unitarias/
Si tiene la estructura de archivo previa, entonces puede continuar con la siguiente sección.
Debe crear el directorio unitarias, ejecutando el siguiente comando:
md .\proyectos\pruebas\unitarias
Debe acceder al directorio , ejecutando el siguiente comando:
cd .\proyectos\pruebas\unitarias
El comando anterior crea la siguiente estructura de directorios:
proyectos/
└── pruebas/
└── unitarias/
Si tiene la estructura de archivo previa, entonces puede continuar con la siguiente sección.
A continuación se presenta y explica el uso de cada archivo para este proyecto:
Archivo operations.py
Módulo de funciones operativas del programa.
1 2 3 4 5 6 7 8 | |
Archivo test_operations.py
Módulo de pruebas unitarias funciones operativas del programa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Para ejecutar el código del proyecto llamado unitarias abra una consola de comando, cree la
siguiente estructura de directorio y acceda al mismo donde se encuentra el programa:
proyectos/
└── pruebas/
└── unitarias/
├── __init__.py
├── operations.py
└── test_operations.py
Si tiene la estructura de archivo previa, entonces puede continuar los procesos de ejecución del código fuente.
Teniendo creada la anterior estructura de proyecto, vuelva a ejecutar ahora el módulo con el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo operations.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 operations.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The total sum is: 3
Este es el funcionamiento normal del módulo operations.py. Por defecto siempre devolvera
el valor 3.
Este código crea una prueba unitaria para la función total_sum, evalúa que el valor 3
sea el resultado esperado.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo test_operations.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 test_operations.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The total sum is: 3
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
Si la ejecución anterior muestra el mensaje anterior, quiere decir que la prueba unitaria fue exitosa.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo operations.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 operations.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The total sum is: 3
Este es el funcionamiento normal del módulo operations.py. Por defecto siempre devolvera
el valor 3.
Este código crea una prueba unitaria para la función total_sum, evalúa que el valor 3
sea el resultado esperado.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo test_operations.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 test_operations.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The total sum is: 3
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
Si la ejecución anterior muestra el mensaje anterior, quiere decir que la prueba unitaria fue exitosa.
Así de esta forma puede replicar una práctica real de un proyecto para realizar pruebas unitareas
usando unittest para el módulo operations.py, aplicando buenas prácticas de código funcional.
Importante
Usted puede descargar el código usado en esta sección haciendo clic en los siguientes enlaces:
Las pruebas unitarias son una parte esencial del desarrollo de software. Implementarlas de manera adecuada
ayuda a garantizar la calidad, estabilidad y mantenibilidad del código. Con herramientas como unittest
en Python, los desarrolladores pueden escribir pruebas de manera sencilla y efectiva.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.
La hora aquí es actualmente 7:35 PM UTM.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.