
Unit Testing Principles, Practices, and Patterns
Vladimir Khorikov
- Editorial
- Manning
- Año
- 2020
- Páginas
- ~256
- Nivel
- Intermedio
De qué trata
Obra de referencia moderna escrita por Vladimir Khorikov que replantea la estrategia de pruebas unitarias enfocándose en maximizar el retorno de inversión (ROI) del esfuerzo de desarrollo. Con ejemplos claros implementados en C# y .NET, el libro se dirige a desarrolladores e ingenieros de software de nivel intermedio a avanzado que ya escriben pruebas, pero que lidian con suites lentas, falsos positivos o tests frágiles que se rompen con cada cambio en el código de producción.
El libro analiza con profundidad metodológica las diferencias fundamentales entre la Escuela Clásica (Detroit / Chicago) y la Escuela de Londres (Mockist), demostrando por qué el uso excesivo de mocks acopla los tests a los detalles de implementación y mina la resistencia al refactorizado. Presenta los cuatro pilares de una buena prueba unitaria (protección contra regresiones, resistencia al refactorizado, retroalimentación rápida y mantenibilidad) y enseña a estructurar el código mediante arquitectura funcional y el patrón Humble Object, separando la lógica pura del dominio de las operaciones con efectos secundarios. Asimismo, cubre el diseño de pruebas de integración con Entity Framework Core y bases de datos relacionales reales, estableciendo reglas nítidas sobre cuándo mockear (solo dependencias no gestionadas, como pasarelas de pago o colas de mensajería externas).
En sus secciones prácticas, el autor refactoriza modelos de negocio realistas (como sistemas de gestión de usuarios y compañías o tiendas virtuales), erradicando anti-patrones habituales como la comprobación de métodos privados, la fuga de lógica de dominio a los tests o la obsesión acrítica por métricas de cobertura de código del 100%. Su valor pedagógico es extraordinario, pues ofrece criterios objetivos y cuantitativos para evaluar la calidad de cada test antes de escribirlo. Deja fuera las pruebas de interfaz gráfica (UI) y las pruebas de carga, concentrándose de manera magistral en el núcleo del dominio y la capa de persistencia.
- Pruebas unitarias
- Pruebas de integración
- C#
- Escuela Clásica vs Londres
- Resistencia al refactorizado
- Mocks y stubs
- Patrón Humble Object
- Arquitectura funcional
- Anti-patrones de testing
- Bases de datos
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✗ Sin proyectos

