Rullst AcademyRullst Academy/Lección
Python: de la primera línea al proyecto · Lección 11 / 12

Pruebas para confiar con criterio

Tu programa acertó un ejemplo. ¿También respeta el límite? Una prueba registra una expectativa para repetir tras cada cambio.

Rutas de aprendizaje12 min

Vamos a descubrir juntos

  1. 1

    unittest forma parte de Python. Una clase derivada de unittest.TestCase agrupa pruebas; métodos que empiezan por test_ describen casos. No necesitas dominar clases todavía: usa el formato mostrado.

  2. 2

    self.assertEqual(resultado, esperado) compara valores y registra un fallo si difieren. Probamos un caso común y la igualdad en el límite.

  3. 3

    Las demostraciones ejecutan la suite en memoria y muestran cantidad de pruebas y éxito. La versión 2 añade + 1 a la regla: las mismas pruebas siguen ejecutándose, pero ya no pasan.

  4. 4

    En el ordenador, python -m unittest lesson.py -v (python3 en macOS/Ubuntu) muestra detalles. Las pruebas apoyan confianza en los casos cubiertos; no demuestran ausencia de todo defecto.

✦
TU MISIÓN

Escribir pruebas unittest e interpretar un fallo sin cambiar la expectativa para ocultar el defecto.

Ahora te toca

Taller de descubrimientos

Lee, predice, comprueba

Compara las dos versiones. Mostrar resultado revela una salida preparada: este panel no ejecuta Python. Después practica con el archivo de la actividad.
Mini experimento

Simulación didáctica: compara tarjetas y comprueba tus predicciones. El navegador no compila Rust ni inicia un servidor.

import unittest

def remaining(limit, used):
    return limit - used

class TimeTests(unittest.TestCase):
    def test_regular(self):
        self.assertEqual(remaining(30, 10), 20)

    def test_exact_limit(self):
        self.assertEqual(remaining(30, 30), 0)

if __name__ == "__main__":
    suite = unittest.defaultTestLoader.loadTestsFromTestCase(TimeTests)
    result = unittest.TestResult()
    suite.run(result)
    print(result.testsRun)
    print(result.wasSuccessful())
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

Tras un cambio, falla una prueba que representaba la regla correcta. ¿Qué sigue?

Necesito una pista

Una prueba útil hace visible una diferencia.

Cargando tu camino…

Llévatelo contigo

Añade una prueba para remaining(30, 0), esperado 30. Ejecuta, introduce un defecto pequeño, observa el fallo y corrige el código. Explica un caso que aún no cubran tus pruebas.

PYTHON · .py

Tu espacio de práctica Python

Aquí lees y predices salidas preparadas. Para ejecutar el código real, descarga el archivo, edítalo en el ordenador y usa Python. Rullst Academy evalúa las respuestas de la lección; no verifica la ejecución local.

Guardar y ejecutar

Extrae el ZIP de la actividad en su propia carpeta. Abre la terminal allí y usa el comando de tu sistema. Si descargas el archivo editado por separado, usa su nombre real en el comando. Guarda antes de volver a ejecutar.

Windows
python lesson.py
macOS / Ubuntu
python3 lesson.py
Mis archivos y GitHub

El editor conserva un borrador local y puede enviar un archivo .py a GitHub con tu confirmación. Descarga tu código editado para conservarlo. El ZIP es material inicial; en el proyecto final publica también datos y pruebas siguiendo PUBLISH.md.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.