Aprender a configurar pruebas unitarias es esencial para desarrollar aplicaciones con FastAPI. Esto asegura que tus desarrollos tengan calidad y que puedas detectar errores rápidamente, agilizando tu flujo de trabajo. FastAPI, combinado con el framework PyTest, permite escribir y ejecutar pruebas automatizadas de manera sencilla y efectiva.
¿Qué necesitas para configurar las pruebas de FastAPI?
Las pruebas en FastAPI requieren configuración local inicial y una base de datos separada específica para testing. Con esto, puedes ejecutar pruebas repetidamente sin afectar tu entorno de producción. Las herramientas principales son:
PyTest: framework especializado en pruebas unitarias.
TestClient de FastAPI: facilita simular solicitudes HTTP (GET, POST) como si las realizara un navegador.
SQLAlchemy y SQLModel: para configurar motores y sesiones de base de datos.
¿Cómo configurar el entorno local?
Para poder correr pruebas efectivamente, sigue estos pasos:
1. Crear archivo de configuración para pruebas
Crea un archivo llamado convTest.py. Aquí estarán todas las configuraciones específicas de pruebas.
2. Ajuste en motor de base de datos
No se recomienda usar la base de datos de producción para pruebas. En cambio, crea un motor específico para testing:
from sqlalchemy import create_engine
from sqlalchemy.pool import StaticPool
engine = create_engine("db_testing_url", connect_args={"check_same_thread":False}, poolclass=StaticPool
)
La opción check_same_thread en False evita conflictos entre distintos hilos, y StaticPool mantiene la base de datos en memoria para facilitar pruebas rápidas.
3. Manejo de tablas con fixtures de PyTest
PyTest emplea fixtures, funciones reutilizables entre diferentes pruebas. Utiliza un fixture para crear y luego eliminar tablas automáticamente: