Explicación del concepto
El enfoque en pruebas significa verificar el comportamiento intencionalmente en lugar de asumir que un programa es correcto solo porque compiló una vez. En esta lección, usarás un pequeño ejemplo de C++ para ver cómo una aserción directa puede proteger una función básica de errores silenciosos. El objetivo no es construir una gran suite de pruebas todavía. Es practicar el pensamiento en resultados esperados: dado este input, ¿qué debería suceder y cómo puedo verificarlo inmediatamente?
Dónde poner el código
- Comienza con variables e inputs. Mantén explícitos los `includes`, la función `main` y los tipos de datos.
- Agrega la lógica de procesamiento en la sección intermedia.
- Finaliza con el output y una validación rápida.
Referencia de comandos
- Indica el output esperado para cada caso de prueba antes de ejecutar el programa.
- Agrega una aserción más que verifique un patrón de input diferente pero válido.
- Mantén la función probada simple para que el propósito de cada verificación sea fácil de entender.
- Usa el output del programa para confirmar cuándo todas las aserciones han pasado.
Guía paso a paso
- Ejecuta el ejemplo una vez y confirma que ambas verificaciones se completan sin fallar.
- Lee cada aserción y explica qué comportamiento está protegiendo.
- Agrega un caso de prueba más para una pequeña condición límite, como sumar cero.
- Rompe una aserción a propósito, ejecuta el código y observa cómo se reporta el fallo.
- Restaura la expectativa correcta y verifica que el programa pase de nuevo.
Ejercicios prácticos
- Escribe una prueba similar para una función de resta con dos inputs diferentes.
- Agrega un caso de prueba que verifique valores repetidos, como `add(4, 4)`.
- Crea un pequeño mensaje de reporte que se imprima solo después de que todas las verificaciones tengan éxito.
Retos de código
- Diseña tres pruebas pequeñas que detectarían rápidamente un error en una función auxiliar aritmética básica.
- Compara las pruebas con `assert` frente a las pruebas solo imprimiendo valores, y explica cuál ofrece una retroalimentación más rápida aquí.
Mini tareas de práctica
- Renombra un parámetro para que la función se lea más claramente.
- Agrega una aserción exitosa y vuelve a ejecutar el programa.
- Escribe una oración que describa lo que garantizan las pruebas.
Error común
Skipping input validation or mixing logic/output in one unstructured block.
Mini reto de la vida real
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.