2009-05-20 33 views
5

Estamos migrando nuestra aplicación a un contenedor Java EE, y buscando herramientas para usar para pruebas unitarias (y pruebas de integración) de nuestra aplicación migrada. Nuestros requisitos incluyen:Pruebas unitarias en el entorno Java EE

  • Ad-hoc de pruebas: la capacidad de ejecutar pruebas de forma manual, en la demanda (para ser utilizado por los desarrolladores mientras que el desarrollo de código)
  • ensayos de lote: la capacidad de ejecutar un gran (y creciente) conjunto de pruebas regularmente
  • en contenedor: pruebas de integración que utilizan EJB a medida que se despliegan en el contenedor
  • prueba de la unidad: pruebas de clases no necesariamente dentro de un contexto de EJB
  • Es bueno tener: Fácil de instalar , se integra con ant/IDE
  • No hay requisito para probar servlets/JSP - sólo POJOs y EJB

¿Qué estás usando para lograr las pruebas en entorno Java EE? ¿Qué tecnologías/configuración ha implementado?

Mi investigación ha descubierto Cactus y JUnitEE: ¿has tenido éxito al configurarlas?

Respuesta

1

Usamos JUnit normal para pruebas unitarias y pruebas de integración. Cambiamos entre los dos usando un argumento de VM, y hacemos que las pruebas se anoten con marcadores para directo vs. servidor. Aunque tenemos una clase TestSuite personalizada que encuentra y ejecuta las pruebas basadas en esta información, ya que era más fácil y menos propensa a errores que el mantenimiento manual de las pruebas que se ejecutan.

En nuestro caso usamos Spring Remoting para hablar con servlets y EJB (a través de los servlets), y probar ambos casos es simplemente una configuración de inicio separada dentro de Eclipse.

Utilizamos JunitEE hace unos años, pero finalmente nos dimos por vencidos a favor de simplemente usar JUnit en todo. Esto nos permitió tener a los desarrolladores haciendo todas las pruebas sin un servidor y ejecutar ambas unidades y lo que yo llamaría pruebas de integración de bajo nivel en su IDE. Luego permitimos que el equipo de compilación ejecute las mismas pruebas de integración con el mismo código que ahora se implementa en el servidor real. Esto hace que el ciclo de desarrollo sea mucho más rápido ya que raramente necesitamos ejecutar el servidor e implementar el código de servicio.

1

JUnit (EE) es lo que todos los proyectos importantes ($ 100mil +) que he apoyado han usado. Es realmente una herramienta fantástica y saber cómo usarla es invaluable cuando/si decides buscar otras oportunidades de trabajo.

Respaldo un sistema financiero del gobierno que no utilizó pruebas unitarias pero después de un gran empuje finalmente implementamos JUnit. El sistema en el que trabajo actualmente es una gran modernización de la agencia gubernamental y utilizamos JUnit para todas nuestras pruebas unitarias. Las dos grandes empresas que respaldan la modernización han hecho que JUnit sea el estándar en todos los subproyectos. Tenemos ~ 200 desarrolladores que lo usan sin problemas.

Es rápido y fácil de configurar, y una vez que lo comprenda y pueda aprovechar las funciones demostrará lo invaluable que es.

+0

Gracias! Entonces, estoy en lo correcto al asumir que estás usando una combinación de JUnit y JUnitEE (http://www.junitee.org)? – Armadillo

+0

En este momento, solo usamos JUnit con RAD (basado en Eclipse). No estoy familiarizado con ningún desarrollador que use JUnitEE, pero eso no quiere decir que no sea una herramienta sólida, la mayoría de la gente simplemente se queda con JUnit. Si no está roto, ¡no lo arregles, dicen! – doomspork