Por qué tu código necesita pruebas, incluso el 'pequeño'
Las pruebas automatizadas no son burocracia — son la diferencia entre saber que tu código funciona y esperar que funcione.
Es fácil pensar que las pruebas automatizadas son para "proyectos grandes" o "código de producción serio". En la práctica, el momento en que más falta hacen es exactamente cuando el proyecto es pequeño y cambia rápido — antes de que un bug se vuelva costoso de encontrar.
Qué prueba realmente una prueba unitaria
Una prueba unitaria verifica que una pieza de código específica (una función, un método) produce el resultado esperado para entradas conocidas, incluyendo casos límite — no solo el camino feliz.
def dividir(a, b):
if b == 0:
raise ValueError("No se puede dividir entre cero")
return a / b
def test_dividir_normal():
assert dividir(10, 2) == 5
def test_dividir_entre_cero_lanza_error():
import pytest
with pytest.raises(ValueError):
dividir(10, 0)El verdadero valor: cambiar código sin miedo
El beneficio más grande de una suite de pruebas no aparece al escribir el código por primera vez, sino meses después, cuando alguien necesita modificarlo. Sin pruebas, cada cambio es un salto de fe; con pruebas, un fallo te avisa exactamente qué se rompió antes de que llegue a producción.
Casos límite: donde realmente viven los bugs
El camino feliz casi nunca falla — lo que falla es la entrada vacía, el valor negativo inesperado, el duplicado que no debería existir. Una buena prueba cubre esos casos explícitamente, no solo el escenario obvio.
Empieza con una prueba, no con la suite perfecta
No hace falta cobertura del 100% desde el primer día — hace falta el hábito de escribir al menos una prueba por cada comportamiento nuevo que agregas. Explora los cursos de Python para practicar este hábito desde los fundamentos.