Diferencia entre revisiones de «Tests De JUnit Multihilo»

De Dos Ideas.
Saltar a: navegación, buscar
(¿Cómo realizar tests multihilos con JUnit?)
 
(El problema)
Línea 5: Línea 5:
 
== El problema ==
 
== El problema ==
  
Si bien podríamos hacer un test de JUnit que cree varios hilos de ejecución, el runner (al menos hasta la version de Junit 4.5) no lo soporta: se crean los hilos y el test termina hayan o no terminado de ejecutar todos los hilos creados. Adicionalmente en el test que creo los hilos desconocemos el resultado de cada uno de estos hilos hijo, por lo que no podemos realizar asserts.
+
Si bien podríamos hacer un test de JUnit que cree varios hilos de ejecución, el runner (al menos hasta la version de Junit 4.5) no lo soporta: se crean los hilos y el test termina hayan o no terminado de ejecutar todos los hilos creados. Adicionalmente en el test que creó los hilos desconocemos el resultado de cada uno de estos hilos hijo, por lo que no podemos realizar asserts.
  
 
== Una solución: GroboUtils ==
 
== Una solución: GroboUtils ==

Revisión del 14:50 8 jul 2010

La situación

Muchas veces desarrollamos clases que se ejecutarán en hilos de manera concurrente. Dicha concurrencia suele ser propensa a errores que son difíciles de detectar y corregir por su naturaleza aleatoria. Por eso es una buena práctica sumar a nuestra batería de tests algunos escenarios que verifiquen el comportamiento del sistema cuando se ejecuta multihilo.

El problema

Si bien podríamos hacer un test de JUnit que cree varios hilos de ejecución, el runner (al menos hasta la version de Junit 4.5) no lo soporta: se crean los hilos y el test termina hayan o no terminado de ejecutar todos los hilos creados. Adicionalmente en el test que creó los hilos desconocemos el resultado de cada uno de estos hilos hijo, por lo que no podemos realizar asserts.

Una solución: GroboUtils

GroboUtils es un conjunto de sub-proyectos que se basan en JUnit para extender sus capacidades. En particular, veremos un ejemplo del subproyecto que se encarga de los tests multihilo.


Ver también