2010-06-13 14 views
10

Me gustaría preguntarle qué tecnologías existen para crear pruebas unitarias para JSP.Pruebas unitarias JSP

Ya conozco las posibilidades de HtmlUnit/HttpUnit/JWebUnit/Selenium.

¡Gracias!

Respuesta

10

Yo diría que probar una aplicación web (ya sea JSP u otra) utilizando su interfaz web, con uno de los marcos mencionados anteriormente no es una unidad de prueba en sentido estricto. Pruebas unitarias significa probar partes pequeñas de su aplicación (un método, una clase) de forma aislada. Con un marco web, prueba la aplicación web como un todo, por lo que esto se parece más al sistema o prueba de integración. Lo cual no quiere decir que no sea útil; al contrario, simplemente es mejor aclarar la terminología.

Dicho esto, si tuviera que probar un JSP, probablemente estaría satisfecho con una prueba del sistema de todos los escenarios específicos asociados con el JSP, usando algunas de las herramientas mencionadas anteriormente.

Sin embargo, si realmente quiere pruebas de unidades "clásicas", supongo que lo más cercano que puede hacer es compilar su JSP en una clase de servlet, llamando a los métodos de servlet directamente (por ejemplo JUnit, usando un marco de burla como EasyMock preparar la solicitud Http, los objetos de respuesta, etc.).

Actualización: IMO el único motivo para necesitar pruebas unitarias para un JSP es si tiene lógica comercial. Lo cual, a su vez, va en contra de la separación de la interfaz de usuario y la capa de negocios. Por lo tanto, es mejor rediseñar la aplicación y mover la lógica a un POJO por separado (si tiene la opción) que tratar de escribir pruebas de unidades artificiales para probar la lógica empresarial donde no corresponde.

+0

Sí, sé que HtmlUnit y las demás son pruebas de integración y no de Unidades. La razón por la que los mencioné es porque sabía que las personas los mencionarían como opciones, y quería ahorrar tiempo. Pero de todos modos, gracias por su respuesta :) –

+0

@Avi, mientras tanto tengo algunas ideas más sobre esto, vea mi actualización. –

+1

+1: Esa es una sabia respuesta. Ponga su lógica comercial en algo que * es * comprobable, y mantenga su JSP lo suficientemente simple como para que aparezca bajo el encabezado de "obviamente no hay errores" (en lugar de "ningún error obvio"). –