Skip to main content

Primeros pasos

Una prueba unitaria es un tipo de prueba de software que se enfoca en verificar el correcto funcionamiento de una unidad mínima y aislada de código. En la mayoría de los casos, esta unidad es una función o un método en un programa. El objetivo principal de una prueba unitaria es asegurarse de que una parte específica del código se comporta como se espera bajo ciertas condiciones.

Características de una prueba unitaria

  1. Aislada: Se prueba una única unidad de código en aislamiento, sin depender de otras partes del sistema. Esto significa que las pruebas no deberían depender de la interacción con bases de datos, sistemas de archivos, servicios externos, etc.

  2. Automatizada: Las pruebas unitarias están diseñadas para ser ejecutadas automáticamente. Esto permite que se ejecuten rápidamente y frecuentemente, por ejemplo, cada vez que se hace un cambio en el código.

  3. Repetible: Los resultados de la prueba deben ser consistentes. Ejecutar la misma prueba bajo las mismas condiciones debería siempre dar el mismo resultado.

  4. Rápida: Las pruebas unitarias deben ser rápidas de ejecutar. Esto facilita su uso frecuente durante el desarrollo para detectar errores lo antes posible.

Componentes de una prueba unitaria

  1. Datos de prueba: Entradas específicas que se proporcionan a la unidad de código para realizar la prueba.

  2. Resultados esperados: Lo que se espera que la unidad de código devuelva o cómo se espera que se comporte cuando se le proporcionan los datos de prueba.

  3. Aserciones (Assertions): Expresiones que verifican si el resultado obtenido de la unidad de código coincide con el resultado esperado. Si la aserción es verdadera, la prueba pasa; si es falsa, la prueba falla.

Las pruebas unitarias son una parte esencial del desarrollo de software, ya que permiten verificar que cada unidad de código (por lo general, funciones o métodos) funciona correctamente de manera aislada. Aquí te presento los primeros pasos y algunos términos clave que debes conocer:

Primeros pasos para escribir pruebas unitarias en Python

  1. Entender la funcionalidad a probar: Antes de escribir pruebas, debes tener claro qué hace el código que vas a probar y cuáles son sus posibles entradas y salidas.

  2. Seleccionar un framework de pruebas: Python tiene varios frameworks para pruebas unitarias, siendo unittest (incluido en la biblioteca estándar de Python) y pytest (muy popular y flexible) los más comunes.

  3. Escribir casos de prueba: Un caso de prueba es una función que prueba un aspecto específico de la funcionalidad. Debe incluir:

    • Datos de prueba: Entradas específicas para la función.
    • Resultados esperados: Qué se espera obtener al ejecutar la función con los datos de prueba.
    • Aserciones (assertions): Verificaciones para comprobar que los resultados obtenidos coinciden con los resultados esperados.
  4. Organizar las pruebas: Las pruebas deben ser organizadas en archivos y clases para mantener el código de prueba limpio y manejable.

  5. Ejecutar las pruebas: Utiliza el framework de pruebas seleccionado para ejecutar todas las pruebas y verificar que el código funciona correctamente.

Términos clave

  • Prueba unitaria (Unit Test): Prueba que verifica una unidad mínima de funcionalidad de manera aislada (por ejemplo, una función).

  • Framework de pruebas: Herramienta que facilita la creación, organización y ejecución de pruebas. Ejemplos son unittest y pytest.

  • Caso de prueba (Test Case): Una función que contiene una o más aserciones para verificar un aspecto específico del código.

  • Aserción (Assertion): Expresión que comprueba si una condición es verdadera. Si no lo es, la prueba falla. Ejemplos en Python son assertEqual, assertTrue, assertFalse, entre otros.

  • Fixture: Configuración necesaria para preparar el entorno antes de que se ejecuten las pruebas (por ejemplo, configurar una base de datos, inicializar variables).

Ejemplo básico (sin entrar en detalle de código)

  1. Crear un archivo de prueba: Por ejemplo, test_mimodulo.py.
  2. Escribir una función de prueba: Define una función que utilice datos de prueba y aserciones.
  3. Utilizar el framework: Ejecuta el archivo de prueba usando un comando del framework (pytest test_mimodulo.py o python -m unittest test_mimodulo.py).