5. Datos de prueba
Temas del programa: 3.3
De dónde salen y dónde viven
Tres fuentes de datos distintas
Section titled “Tres fuentes de datos distintas”| Desarrollo | Pruebas | Producción | |
|---|---|---|---|
| Base | reservafic | reservafic_testing | La del servidor |
| Quién la llena | Seeder | Cada prueba con factories | Los usuarios |
| Se borra | Cuando quieras | Antes de cada prueba | Nunca |
| Datos reales | No | No | Sí |
La base de pruebas se configura aparte
Section titled “La base de pruebas se configura aparte”<env name="APP_ENV" value="testing"/><env name="DB_CONNECTION" value="pgsql"/><env name="DB_DATABASE" value="reservafic_testing"/>PostgreSQL como en producción · STD-TEST §6
RefreshDatabase la vacía · si apunta a desarrollo pierdes tus datos
Factories — datos coherentes en una línea
Section titled “Factories — datos coherentes en una línea”public function definition(): array{ return [ 'nombre' => fake()->randomElement(['Laptop', 'Proyector', 'Cámara']).' '.fake()->numerify('###'), 'descripcion' => fake()->sentence(), 'disponible' => true, ];}$equipo = Equipo::factory()->create(); // uno con valores al azar válidos$equipos = Equipo::factory()->count(5)->create(); // cincoFijar solo lo que importa
Section titled “Fijar solo lo que importa”$equipo = Equipo::factory()->create();
Prestamo::factory()->for($equipo)->create([ 'fecha_inicio' => '2026-11-10 10:00:00', // lo que la prueba necesita controlar 'fecha_fin' => '2026-11-10 12:00:00',]);La factory llena el resto · quien lee la prueba ve de inmediato qué datos son relevantes
STD-TEST §5 · factories y no datos repetidos escritos a mano en cada prueba
Cada prueba empieza en limpio
Section titled “Cada prueba empieza en limpio”class PrestamoApiTest extends TestCase{ use RefreshDatabase; // migra una vez y revierte lo de cada pruebaUna prueba ve los préstamos que dejó otra y pasa o falla según el orden
Cada prueba crea lo que necesita y nada más
STD-TEST-03 y STD-TEST-04
Seeder o factory
Section titled “Seeder o factory”Datos de demostración para trabajar en desarrollo · admin@reservafic.test
Los datos exactos que esa prueba necesita
No uses el seeder de demo como datos de prueba · si alguien cambia la demo se rompen pruebas que no tienen relación
Datos de prueba que no lastiman
Section titled “Datos de prueba que no lastiman”- Nunca copies datos de personas reales a la base de pruebas
- Usa fake() para nombres y correos y dominios .test
- La contraseña de la UserFactory es conocida · solo para desarrollo y pruebas
- Los datos de prueba tampoco van al repositorio si salen de una base real
Revisar con severidades
Section titled “Revisar con severidades”| Severidad | Bloquea |
|---|---|
| BLOCKER — viola una regla P0 | Sí |
| MAJOR — viola una regla P1 | Sí hasta corregir |
| MINOR — mejora razonable | No |
| NIT — preferencia | No |
BLOCKER — STD-API-05 el endpoint no está dentro de auth:sanctum y cualquiera puede leer préstamos
Actividad A5 — un merge request lleno de defectos
Relación con el laboratorio
Section titled “Relación con el laboratorio”Este tema se practica en el Laboratorio 3 — Pruebas unitarias y de integración.
Qué sigue
Section titled “Qué sigue”Continúa con 6. Desarrollo seguro.

