Testing con Pytest: validar comportamiento y prevenir regresiones

Aprende a escribir tests útiles con Pytest, estructurar casos de prueba y detectar errores antes de producción.

Un test no demuestra que no existan bugs; demuestra que un comportamiento crítico sigue cumpliendo contrato.

Pytest destaca por sintaxis simple, descubrimiento automático y ecosistema de fixtures muy potente.

La calidad de tests depende de su intención: pocos tests precisos valen más que muchos triviales.

Testear temprano permite refactorizar con seguridad y reducir regresiones al crecer el proyecto.

  • Un test debe ser claro: preparar, ejecutar, verificar.
  • Pytest detecta funciones que empiezan por `test_` dentro de archivos `test_*.py` o `*_test.py`.
  • El patrón básico Arrange-Act-Assert facilita lectura y mantenimiento de pruebas.
  • Un buen nombre de test describe el comportamiento esperado, no el detalle interno de implementación.
  • No pruebes solo el caso feliz; prueba bordes y fallos previsibles.

1) Anatomía de un test con Pytest

Un test debe ser claro: preparar, ejecutar, verificar.

Pytest detecta funciones que empiezan por `test_` dentro de archivos `test_*.py` o `*_test.py`.

El patrón básico Arrange-Act-Assert facilita lectura y mantenimiento de pruebas.

Un buen nombre de test describe el comportamiento esperado, no el detalle interno de implementación.

2) Casos límite y errores esperados

No pruebes solo el caso feliz; prueba bordes y fallos previsibles.

Muchos bugs aparecen en límites: cero, negativos, strings vacíos, colecciones vacías o entradas fuera de rango.

`pytest.raises(...)` permite verificar que una función lanza la excepción correcta cuando debe fallar.

Probar errores esperados evita que futuros cambios oculten validaciones críticas.

3) Estrategia de tests en proyectos reales

Prioriza lo crítico para negocio y lo que más cambia.

Empieza por funciones puras y reglas de negocio, porque son fáciles de testear y muy valiosas.

Después cubre integraciones clave (API, base de datos) con tests controlados y entornos aislados.

Mantén tests rápidos y deterministas; pruebas inestables erosionan confianza del equipo.

  • Nombra tests por comportamiento esperado.
  • Incluye casos límite y de error.
  • Evita dependencias externas no controladas.
  • Haz que el fallo del test explique claramente qué se rompió.
Python
17

Testing con Pytest: validar comportamiento y prevenir regresiones

Aprende a escribir tests útiles con Pytest, estructurar casos de prueba y detectar errores antes de producción.

Código del tema: pytest -q

📘 Teoría

1) Anatomía de un test con Pytest

Un test debe ser claro: preparar, ejecutar, verificar.

1

Pytest detecta funciones que empiezan por `test_` dentro de archivos `test_*.py` o `*_test.py`.

2

El patrón básico Arrange-Act-Assert facilita lectura y mantenimiento de pruebas.

3

Un buen nombre de test describe el comportamiento esperado, no el detalle interno de implementación.

Test mínimo con assert
def suma(a: int, b: int) -> int:
    return a + b


def test_suma_basica() -> None:
    assert suma(2, 3) == 5

2) Casos límite y errores esperados

No pruebes solo el caso feliz; prueba bordes y fallos previsibles.

Muchos bugs aparecen en límites: cero, negativos, strings vacíos, colecciones vacías o entradas fuera de rango.

`pytest.raises(...)` permite verificar que una función lanza la excepción correcta cuando debe fallar.

Probar errores esperados evita que futuros cambios oculten validaciones críticas.

1

Caso feliz

Comportamiento normal esperado.

2

Error esperado

Validar excepción cuando la entrada es inválida.

3) Estrategia de tests en proyectos reales

Prioriza lo crítico para negocio y lo que más cambia.

Empieza por funciones puras y reglas de negocio, porque son fáciles de testear y muy valiosas.

Después cubre integraciones clave (API, base de datos) con tests controlados y entornos aislados.

Mantén tests rápidos y deterministas; pruebas inestables erosionan confianza del equipo.

  • Nombra tests por comportamiento esperado.
  • Incluye casos límite y de error.
  • Evita dependencias externas no controladas.
  • Haz que el fallo del test explique claramente qué se rompió.
Ejecución básica
pytest -q

🧪 Aprende probando

Ejemplo Ejemplo: testear cálculo de IVA Caso feliz y validación de entrada inválida en una función de negocio pequeña.

🏁 Retos

Reto Reto: añade un test con nombre correcto Crea prueba para verificar suma básica siguiendo convención de Pytest.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Python.

Test de Python

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .