- Inicio
- Habilidades
- Pruebas
- Fabrica de Datos de Test
Pruebas
Fabrica de Datos de Test
Construye fabricas de datos de test flexibles que generan fixtures realistas y type-safe — sin mas objetos mock copiados.
Intermedio Gratis Publicado: 15 de abril de 2026
Herramientas Compatibles claude-codechatgptgeminicopilotcursorwindsurfuniversal
El Problema
Cada archivo de test crea sus propios datos mock — objetos copiados con variaciones leves, strings magicos y formas inconsistentes. Cuando el modelo de datos cambia, actualizas fixtures en docenas de archivos. Las funciones factory resuelven esto centralizando la creacion de datos con defaults sensatos y overrides faciles, pero construirlas desde cero para cada proyecto es tedioso.
El Prompt
Construye un sistema de fabricas de datos de test para mi aplicacion. Necesito funciones factory reutilizables que generen datos de test realistas, type-safe con defaults sensatos y overrides faciles.
MODELOS DE DATOS:
[pega tus interfaces TypeScript, schemas Zod, modelos Prisma, o definiciones de tablas]
REQUERIMIENTOS:
- Lenguaje: [TypeScript / Python / Go]
- Incluir: secuencias (IDs auto-incrementales), relaciones (usuario tiene muchas ordenes), traits (usuario admin, suscripcion expirada)
- Soportar: overrides parciales (solo especificar lo que difiere de los defaults)
Genera:
1. **Factory Base** — Patron Builder con chaining, defaults realistas auto-generados, secuencias y type-safety completo
2. **Factories por Entidad** — Factories especificas para cada modelo con defaults sensatos, traits nombrados y builders de relaciones
3. **Ejemplos de Uso** — Mostrar como usar las factories en tests reales con diferentes escenarios
Ejemplo de Salida
const userFactory = createFactory<User>({
defaults: (seq) => ({
id: `usr_${seq}`,
name: `Usuario Test ${seq}`,
email: `usuario${seq}@test.com`,
role: 'member',
createdAt: new Date('2026-01-15'),
isActive: true,
}),
traits: {
admin: { role: 'admin' },
inactive: { isActive: false, deactivatedAt: new Date() },
premium: { role: 'member', plan: 'premium' },
},
});
// En tests:
const admin = userFactory.trait('admin').build();
const inactiveUsers = userFactory.trait('inactive').buildList(5);
Cuando Usar
Usar cuando tienes mas de 3 archivos de test creando datos mock, cuando cambios en el modelo requieren actualizar fixtures en multiples lugares, o al inicio de cualquier proyecto nuevo.
Tips Pro
- Generar desde tu schema — pegar schemas Prisma/TypeORM/Zod y pedir a la IA que genere factories que satisfagan todas las restricciones de validacion.
- Agregar helpers de relaciones —
userFactory.withOrders(3).withAddress().build()crea un usuario con 3 ordenes relacionadas y una direccion. - Usar faker con moderacion — defaults estaticos realistas son mas faciles de debuggear que valores aleatorios.
- Compartir factories entre tipos de test — la misma factory debe funcionar en tests unitarios y de integracion.