You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este repositorio es un ecosistema de aprendizaje y desarrollo en Java. Contiene implementaciones de algoritmos clásicos, gestión de lógica de negocio y pruebas de integración, sirviendo como base sólida para despliegue de componentes escalables.
@@ -51,7 +51,7 @@ Para asegurar la robustez del sistema, empleamos una **pirámide de pruebas** eq
51
51
52
52
### **Stack Técnico**
53
53
***Lenguaje:** Java 25 (utilizando las últimas funciones de la JVM).
54
-
***Build Tool:** Maven 3.8.7+.
54
+
***Build Tool:** Maven 3.5.4+.
55
55
***Testing:** JUnit 5 (Jupiter) & Mockito 5.
56
56
***IDE:**`IntelliJ IDEA 2025.2.5`.
57
57
@@ -73,21 +73,45 @@ Para asegurar la robustez del sistema, empleamos una **pirámide de pruebas** eq
73
73
```
74
74
>**Nota técnica (Java 25):** Para evitar advertencias de carga dinámica durante los tests, el proyecto está configurado para habilitar `-XX:+EnableDynamicAgentLoading` en el entorno de pruebas.
75
75
76
-
### **Estructura del proyecto**
77
-
```
76
+
### **Estructura del Proyecto**
77
+
78
+
El proyecto sigue una arquitectura modular y por capas (Interfaz, Negocio y Datos), organizada de la siguiente manera:
79
+
80
+
```text
78
81
javatest/
79
-
├── src/main/java/ # Lógica de negocio (Utilidades, Pagos, etc.)
Biblioteca para crear mocks y stubs en pruebas. En este `pom.xml` además se referencia como `-javaagent` en la configuración de `maven-surefire-plugin` (revisa la ruta si hay problemas).
Biblioteca principal para crear mocks y stubs en pruebas. Se utiliza junto con **mockito-junit-jupiter** (5.21.0) para una integración fluida con JUnit 5.
105
+
*Nota técnica:* Para Java 25+, se ha configurado el `javaagent` y la flag `-XX:+EnableDynamicAgentLoading` en el `maven-surefire-plugin` para permitir la carga dinámica de Mockito.
JUnit 5 (Jupiter) — API moderna para pruebas. La versión se gestiona centralizadamente mediante el `junit-bom` (5.13.4) definido en la sección `dependencyManagement`.
JUnit 5 (Jupiter) — API moderna para pruebas. Para ejecutarlo correctamente se recomienda usar `maven-surefire-plugin` versión compatible (ya configurado en el `pom.xml`).
110
+
- **org.springframework:spring-jdbc:6.2.11**
111
+
Proporciona utilidades como `JdbcTemplate` para simplificar las operaciones con la base de datos y el mapeo de resultados.
112
+
113
+
- **com.h2database:h2:2.4.240**
114
+
Base de datos SQL en memoria, utilizada para ejecutar tests de integración rápidos sin necesidad de un servidor de base de datos externo.
91
115
92
116
---
93
117
@@ -104,7 +128,26 @@ javatest/
104
128
***Seguridad:** Monitoreo y escaneo automático de vulnerabilidades en dependencias mediante **Dependabot**.
105
129
106
130
---
131
+
### **Configuración de Ejecución (Surefire)**
132
+
133
+
El proyecto utiliza **maven-surefire-plugin (3.5.4)** con una configuración personalizada para soportar las últimas características de la JVM:
134
+
135
+
1. **Patrones de nombres:** Se ejecutan automáticamente los archivos que terminan en:
136
+
- `*Test.java`
137
+
- `*Should.java` (estilo BDD).
107
138
139
+
2. **JVM Arguments:**
140
+
- `-XX:+EnableDynamicAgentLoading`: Necesario en versiones modernas de Java para que Mockito pueda interceptar llamadas.
141
+
- `-javaagent`: Apunta directamente al jar de Mockito en el repositorio local para asegurar su inicialización.
142
+
---
143
+
144
+
### **Cómo ejecutar los tests**
145
+
146
+
Para ejecutar todas las pruebas desde la terminal, usa:
147
+
```bash
148
+
mvn test
149
+
```
150
+
---
108
151
### **Contribuciones y Licencia**
109
152
¡Las contribuciones son lo que hacen a la comunidad increíble! Si deseas colaborar, sigue estos pasos:
0 commit comments