Construir una Aplicacion Web utilizando HttpUnit y la Metodología Diriga al Test

Ya est� listo para construir los test para el resto de funcionalidades: borrar y editar contactos. La funcionalidad de borrar ser� bonita. Ahora el test testSaveNewContact de la suite NewTest est� desordenada. Crea un nuevo contacto, pero despu�s no lo borra. La funcionalidad de edici�n deber�a ser f�cil de probar porque es muy similar a los test de la funcionalidad new. Implementa primero la funcionalidad de borrado realizando los siguientes pasos:

  1. Copia DeleteTest.java.v1 desde el archivo del c�digo de ejemplo a src/test/com/abcinc/phonelist/test con el nombre DeleteTest.java.
  2. Copia build.xml.v4 sobre tu fichero build.xml existente. La nueva versi�n de build.xml tiene los siguientes cambios:
    1. la adici�n de un nuevo target llamado test-delete
    2. la adici�n de una nueva dependencia test-delete al target test
    3. la adici�n de las clases de la aplicaci�n Web al classpath de los tests para que el test pueda cojer clases como ContactBean
    4. la adici�n de la dependencia compile-classes al target compile-tests para que los tests puedan hacer uso de las clases compiladas de la aplicaci�n Web
    5. el cambio del target compile-tests para a�adir las clases de la aplicaci�n Web al classpath para la compilaci�n de los tests.
  3. Copia ContactBean.java.v2 archivo del c�digo de ejemplo a src/WEB-INF/classes/com/abcinc/phonelist con el nombre ContactBean.java, en lugar de la copia existente de ContactBean.java. A�adiste un nuevo m�todo equals para comparar la igualdad de los campos de dos ejemplares de ContactBean, que se utilizaba en DeleteTest.java.

Teclea ant test para verificar que aunque se pasan los tests NewTest y ShowListTest, la suite DeleteTest falla un test. Se pasa el chequeo de la presencia del bot�n delete, pero no pasa el chequeo de la action delete. Obtendremos un error como el siguiente:

     [java] There was 1 error:
     [java] 1) testDeleteContact(com.abcinc.phonelist.test.DeleteTest)com.meterware.httpunit.HttpInternalErrorException:
     Error on HTTP request: 500 Internal Error [http://localhost:8080/phonelist/delete.do]

Si tu suite de tests no falla, normalmente significa que has cometido un error al codificar el test. Realiza los siguientes pasos para implementar la funcionalidad delete que har� que se pasen lo tests:

  1. Copia DeleteAction.java.v1 del archivo del c�digo de ejemplo a src/WEB-INF/classes/com/abcinc/phonelist como DeleteAction.java.

Normalmente, necesitaras a�adir una secci�n a struts-config.xml por cada action, pero ya has a�adido una secci�n para la acci�n /delete. La a�adiste para poder ver la lista de contactos con un formulario que permit�a seleccionar �tems para borrarlos. Podr�as recordar que Struts requiere la definici�n de las acciones utilizadas en sus formularios, incluso aunque no hayas implementado todav�a la acci�n /delete, a�n has tenido que definirlo en struts-config.xml para poder mostrar el formulario en el fichero showList.jsp.

Prueba de nuevo los tests. Asegurate de apagar Tomcat, eliminar la aplicaci�n en Tomcat (deploy), desplegarla de nuevo, y arrancar Tomcat de Nuevo. La suite DeleteTest deber�a pasar todos los test. Una buena cosa a hacer ahora es que la suite NewTest haga limpieza despu�s de ejecutarse. Ahora que ya tienes la funci�n delete funcionando de la forma apropiada, puedes borrar el nuevo contacto que has creado en NewTest para probar la habilidad de crear y grabar nuevos contactos.

Reemplaza tu versi�n de NewTest.java de src/test/com/abcinc/phonelist/test con NewTest.java.v3 del archivo del c�digo de ejemplo. Asegurate de mantener el nombre de fichero como NewTest.java. Si examinas el fichero, ver�s que el m�todo testSaveNewContact contiene c�digo extra para determinar el valor ID del contacto recien creado y luego envia el formulario a la p�gina showList con checkbox correcto seleccionado para la acci�n delete.

Ejecuta ant clean para asegurarte de que el directorio de construcci�n est� limpio, luego ejecuta de nuevo ant test para verificar la suite NewTest funciona de la forma apropiada y no deja el nuevo contacto en la base de datos cada vez que se ejecuta. Puedes apuntar tu navegador a http://localhost:8080/phonelist/showList.do para verificar que la lista de contactos no cambia despu�s de ejecutar NewTest. Reemplaza localhost con el nombre de la m�quina donde se est� ejecutando Tomcat.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO