Testing con Python - De código roto a código confiable

Unit testing con pytest: fixtures, mocks, fakes, TDD e inyección de dependencias aplicados a proyectos Python reales

¿Cuántas veces has desplegado código con miedo? ¿Cuántas veces un cambio aparentemente simple rompió algo en otro lugar que no esperabas? ¿Cuántas veces llegaste a producción con un bug que un test habría detectado de inmediato?

Este curso existe para resolver exactamente eso.

Este es un curso práctico de unit testing diseñado para desarrolladores Python que quieren dejar de escribir código a ciegas y empezar a construir software en el que puedan confiar. No es un curso teórico; cada concepto se enseña con código real, ejemplos del mundo real, con laboratorios donde aplicarás lo aprendido de forma autónoma. Es un curso muy práctico, por lo que te recomiendo que tengas una completa disposición a escribir muchas pruebas unitarias para aprender diferentes temas y que, después que finalices el curso, estés en una completa capacidad de escribir las pruebas unitarias de todos los proyectos que lleves a cabo, evitando así errores futuros, asegurando la calidad y funcionalidad de tu código.


¿Qué aprenderás?

Empezarás desde los fundamentos: qué es un unit test, qué no es, y por qué la forma en que diseñas tu código determina qué tan fácil o difícil es testearlo. Aprenderás pytest en profundidad: fixtures, markers, parametrización, conftest y pytest.ini para configurar proyectos profesionales.

Verás cómo el principio de Single Responsibility impacta directamente la calidad de tus tests, cómo la inyección de dependencias con DefaultAdapter y FakeAdapter elimina el acoplamiento fuerte y cómo el patrón Singleton puede arruinar tu suite de tests sin que lo notes.

Después entrarás al corazón del curso: test doubles. Aprenderás a distinguir y aplicar stubs, mocks, spies y fakes para aislar dependencias externas como bases de datos, servidores SMTP o APIs, manteniendo tus tests rápidos, deterministas y confiables.

También explorarás técnicas más avanzadas: property-based testing con Hypothesis para generar cientos de casos automáticamente, Object Mother para construir objetos de prueba de forma organizada, contract testing para garantizar que tus fakes reflejan fielmente el comportamiento real y TDD para desarrollar funcionalidades guiadas por tests desde el primer commit.

Más de 14 horas de contenido, laboratorios prácticos, ejemplos con código real y recursos descargables en cada sección.

  • Conocimientos básicos de Python, hay una sección para reforzar conocimientos en python pero el curso no enseña Python desde cero. Con saber escribir funciones, clases y manejar excepciones es suficiente para seguir todas las clases sin problemas.
  • Nociones básicas de programación — entender condicionales, bucles y estructuras de datos como listas y diccionarios. No se requiere experiencia en testing previo.
  • Familiaridad con el desarrollo backend — saber qué es una API y tener una idea general de cómo funciona una aplicación del lado del servidor. No es necesario ser experto, solo tener el contexto.
  • Git y GitHub básico — saber hacer clone, commit y push. Los recursos del curso están en GitHub y se recomienda tener una cuenta activa. Si no tienes una, crearla es gratuito y toma cinco minutos.
  • Un sistema operativo con terminal — Windows, macOS o Linux funcionan perfectamente. Las instrucciones del curso cubren los tres.
  • Python 3.10 o superior instalado
  • Escribir unit tests con pytest aplicando fixtures, markers, parametrización y conftest para organizar suites de tests profesionales
  • Identificar código mal diseñado que dificulta el testing y refactorizarlo aplicando el principio de Single Responsibility
  • Aplicar test doubles - dummies, stubs, mocks, spies y fakes - para aislar dependencias externas y mantener los tests rápidos y deterministas
  • Diseñar código testeable usando inyección de dependencias con un DefaultAdapter o RealAdaptey FakeAdapter, eliminando el acoplamiento fuerte a recursos externos
  • Explorar property-based testing con Hypothesis para generar cientos de casos de prueba automáticamente y encontrar bugs que los tests manuales no detectan
  • Implementar patrones avanzados de testing como Object Mother y TDD para escribir código confiable desde el primer commit
  • Distinguir cuándo usar cada herramienta de testing - unit test, integration test, mock, fake, TDD, coverage, tomando decisiones informadas en proyectos reales
  • Desarrolladores Python con conocimientos básicos o intermedios que escriben código funcional pero nunca han implementado tests
  • Devs que ya escriben algunos tests pero los hacen de forma intuitiva
  • Desarrolladores que quieren entender por qué su código es difícil de testear