2010-04-03 13 views

Respuesta

5
  • prueba los servicios fuera de su contexto de "servicio web".
  • Utilice WSUnit para probar los consumidores.
  • echar un vistazo a this article

Las pruebas unitarias tienen el propósito de probar las unidades de código. Deberían probar la lógica comercial, y no la infraestructura. Por lo tanto, esto no es exactamente una "prueba unitaria" si desea probar los servicios dentro del contexto del servicio web.

+0

Entonces, ¿qué habría que llamar a una prueba que lanza el servicio y pruebas de ella a través del punto final? :) También el enlace wsunit es un 404? – rogerdpack

+0

más ampliamente - "prueba de integración", probablemente. He arreglado el enlace – Bozho

7

Los servicios web JAX-WS son POJO anotados, por lo que puede probar la unidad probarlos (de forma aislada) utilizando un marco de pruebas unitarias (JUnit, TestNG) y Mocks.

+2

@Downvoter Care para explicarlo? Bajar la votación de esta respuesta es una broma pura (que muestra que no tienes ni idea de qué significa la prueba unitaria por cierto). –

+0

No es exactamente así. Están ananotados, lo que significa que no son solo objetos planos de Java a ese respecto. Tienen metadatos adicionales directamente adjuntos que cambian su comportamiento. Algo que no se puede capturar probándolos directamente como objetos simples. Hay cosas para probar, como restricciones de seguridad, interacciones de transacciones, invocaciones asincrónicas, etc. Todo lo cual es parte del problema de mezclar la lógica de negocios con la exposición de un servicio web. –

4

Para pruebas funcionales: puede usar herramientas como soapUI (pero no recomiendo esta opción porque las pruebas creadas con esta herramienta son realmente difíciles de mantener). Otra opción (recomendada) es utilizar las pruebas JUnit en las que crea el servicio + cliente y ejerce los métodos de servicio. En nuestro proyecto usamos Apache CXF y funciona muy bien. También es compatible con JAX-WS.

Para la prueba unitaria - JUnit "regular", ya que el servicio generado es un objeto Java simple.