| name | test |
| description | Guidelines for unit and integration testing in the Sysacad Next BackEnd. |
🧪 Sysacad Next - Testing Strategy
La confiabilidad del sistema académico depende de una estrategia de pruebas sólida. Utilizamos el stack estándar de Spring Boot para validaciones unitarias y de integración.
🛠️ Stack Tecnológico
- JUnit 5 (Jupiter): Motor de pruebas principal.
- Mockito: Para simular dependencias (
Mock, Spy).
- AssertJ: Para aserciones fluidas y legibles.
- Spring Boot Test:
@SpringBootTest: Para pruebas de integración completas.
@WebMvcTest: Para probar controladores de forma aislada (Slicing).
@DataJpaTest: Para pruebas de persistencia con H2 o DB de pruebas.
⚖️ Directrices de Pruebas
- Nombramiento: Los métodos deben describir el comportamiento esperado (ej.
deberiaLanzarExcepcionCuandoCupoAgotado).
- Unit Tests (Services): Son prioritarios. Deben probar la lógica de negocio usando Mocks para los repositorios.
- Manejo de Transacciones: Usa
@Transactional en los tests de integración para asegurar que los cambios se reviertan automáticamente tras cada ejecución.
- Aislamiento: Los tests no deben depender del estado dejado por otros tests ni del orden de ejecución.
- Exhaustividad: Es mandatario cubrir la mayor cantidad de casos posibles por cada archivo. La profundidad de los tests debe ser proporcional a la complejidad de la lógica de negocio.
🚀 Comandos Maven
mvn test: Ejecutar todas las pruebas.
mvn test -Dtest=NombreClaseTest: Ejecutar un test específico.