Saltar al contenido

Lección 2.3 Comprobar cada cambio

Construir y probar sin pasos ocultos

Explicar qué necesita una construcción y qué demuestra cada prueba ejecutada.

Una calculadora puede encender perfectamente y sumar mal. Mirar su luz confirma una cosa; probar una cuenta confirma otra. Con una aplicación ocurre lo mismo: arrancar, tener una sintaxis válida y cumplir una regla son comprobaciones distintas.

En un flujo para nuestro caso, Python puede revisar la sintaxis y unittest contrastar las reglas. El empaquetado puede crear una entrega de código interpretable. No estamos compilando un ejecutable nativo ni haciendo que un ZIP, por sí solo, demuestre calidad.

Compara la salida con una regla acordada

Un flujo podría separar estas comprobaciones con los siguientes comandos. Aquí importa comprender qué observa cada uno:

.venv/bin/python -m compileall -q pedido.py app.py herramientas
.venv/bin/python -m unittest discover -s tests -v

La primera acción detecta problemas de sintaxis en esos archivos. La segunda contrasta cantidades, precios y envío con resultados esperados. Una regla del negocio entra al sistema cuando alguien decide qué comportamiento debe considerarse correcto.

La prueba del límite tiene una intención especial:

def test_en_el_umbral(self):
    self.assertEqual(total_pedido(1, 10000)['envio'], 0)

Comprueba que exactamente S/ 100.00 recibe envío gratuito. Probar solo un pedido de S/ 75.00 y otro de S/ 120.00 dejaría sin observar el punto donde cambia la condición.

El error que queremos encontrar aquí

Si una modificación reemplaza subtotal >= 10000 por subtotal > 10000, la sintaxis sigue siendo válida. Una prueba del límite debería señalar la diferencia: el envío esperado es cero y el resultado pasa a 500.

No actualices la expectativa para que vuelva el verde sin revisar la regla. Una prueba puede estar equivocada y necesitar corrección; el motivo para cambiarla debe ser una decisión sustentada, no la incomodidad de verla fallar.

Estas pruebas tampoco comprueban redes, pagos, inventario o carga. El ejemplo no tiene esas capacidades. En una aplicación mayor, otras comprobaciones tendrían que observarlas según su importancia.

Lee el fallo y encuentra su consecuencia

Imagina tres resultados: la regla inicial pasa; una modificación cambia el operador y falla el caso de S/ 100.00; al restaurar el operador vuelve a pasar. ¿Qué demuestra esa secuencia y qué decisión todavía necesita el equipo?

Qué evidencia deberías conservar

La secuencia distingue el comportamiento inicial, la diferencia introducida y su corrección. El valor de la prueba está en haber detectado una diferencia relevante, no en la cantidad de líneas del archivo.