2012-06-29 44 views
5

Estoy tratando de entender Arquillian y simplemente no estoy fundamentalmente entendiendo la diferencia entre el modo in-container vs modo.Arquillian Run modos

Mi entendimiento es que, con Arquillian/ShrinkWrap:

  • Se crea un archivo que sólo contiene los componentes que desea integrar y probar con
  • permite transmitir Este archivo en memoria a un contenedor real (desplegarlo)
  • ejecutar el archivo como una prueba dentro del contenedor
  • a tomar una afirmación acerca de lo que ocurrirá como resultado de esa prueba

Por lo tanto, desde mi punto de vista, todo simplemente "se siente" como si siempre fuera in-container, ya que las pruebas siempre se están ejecutando dentro de un contenedor.

Ayúdeme a comprender las diferencias entre estos dos modos y para qué tipos de pruebas de integración son adecuados. Puntos adicionales para proporcionar un ejemplo de código concreto (y no los vagos directamente de la Guía de referencia) que explican por qué/cómo se ejecutan las pruebas en ambos modos. ¡Gracias por adelantado!

Respuesta

1
  • en-contenedor: uso de caja blanca, las pruebas de integración
  • as-cliente: uso para la caja de negro, pruebas funcionales

es decir, para la prueba UI/funcional (" como "el rol de un" cliente "que usa la aplicación en producción) use el modo as-client con @RunAsClient. Para pruebas de integración reales (pruebas de dependencias entre clases donde necesita conocimiento interno de "caja blanca" sobre la aplicación en sí), usando el modo in-container.

En ambos casos, ShrinkWrap y Arquillian despliegan su archivo en memoria (JAR/WAR/EAR) directamente en el contenedor configurado (a través de un protocolo de transmisión JBoss-homegrown), sin embargo cuando las pruebas se ejecutan en diferentes modos tienen diferente acceso al contenedor dependiendo del modo de prueba.

+0

Entiendo la diferencia entre las pruebas de whitebox y blackbox, pero tampoco lo entiendo con las pruebas del modo cliente. ¿significa que el archivo comprimido en modo cliente no se implementa en la misma aplicación bajo prueba sino que se implementa en una aplicación separada para que haya una configuración de tipo cliente/servidor? si en el modo cliente el archivo shrinkwrap también se implementa en la aplicación bajo prueba, aún no veo la diferencia entre los dos modos. :( – dragonsfire