Guía de Testing
Introducción
Section titled “Introducción”Garantizar la estabilidad del juego, especialmente con la lógica compleja de interacciones entre cartas, es fundamental. Utilizamos diferentes niveles de pruebas.
Backend Testing
Section titled “Backend Testing”El backend utiliza Jest como framework de pruebas.
Ejecución
Section titled “Ejecución”cd virus-backendpnpm testTipos de Pruebas
Section titled “Tipos de Pruebas”-
Unitarias (Servicios):
- Probar reglas de negocio aisladas.
- Ejemplo: Verificar que un órgano no acepte un virus de otro color.
- Ejemplo: Verificar que el mazo se baraje correctamente.
-
Integración (Sockets):
- Simular conexiones de clientes Socket.IO.
- Verificar que al enviar un evento
play_card, el servidor responda con el nuevo estado correcto.
Frontend Testing
Section titled “Frontend Testing”El frontend utiliza Jasmine y Karma (o el runner configurado por defecto en Angular).
Ejecución
Section titled “Ejecución”cd virus-frontendpnpm testEstrategia
Section titled “Estrategia”- Componentes Aislados: Verificar que los componentes (especialmente los “Dumb components”) renderizan correctamente los inputs.
- Servicios: Probar la lógica de transformación de datos en el
GameStorey los parsers de respuestas.
Testing Manual (QA)
Section titled “Testing Manual (QA)”Debido a la naturaleza multijugador en tiempo real, las pruebas manuales son inevitables.
Escenario de Prueba Básico
Section titled “Escenario de Prueba Básico”- Abrir dos navegadores (o pestañas de incógnito).
- Navegador A: Crear Sala -> Copiar Código.
- Navegador B: Unirse a Sala con el Código.
- Navegador A: Iniciar Partida.
- Comprobar que ambos reciben sus cartas y ven el tablero.
- Realizar una ronda de jugadas y verificar la sincronización visual.