Editar un Contacto
La última pieza que queda es escribir la funcionalidad edit. Primero, escribe el test. Copia el fichero EditTest.java.v1 desde el
archivo del código de ejemplo a src/test/com/abcinc/phonelist/test y llamalo EditTest.java. También necesitarás hacer algunos cambios en build.xml, por eso copia build.xml.v5 del
archivo del código de ejemplo y utilizalo para reemplazar tu fichero build.xml actual. Los cambios que hiciste entre las versiones 4 y 5 fueron:
- Modificar el target test para incluir la dependencia a test-edit.
- Añadir un target test-edit que ejecute la clase EditTest.
Ejecuta los tests de nuevo. Deberias obtener el siguiente error:
[java] 1) testEditContact(com.abcinc.phonelist.test.EditTest)com.meterware.httpunit.HttpException:
Error on HTTP request: 400 Invalid path /edit was requested
[http://localhost:8080/phonelist/edit.do?id=6]
Ahora implementa la funcionalidad para que se pase la suite EditTest .
- Copia el fichero EditAction.java.v1 desde el
archivo del código de ejemplo a src/WEB-INF/classes/com/abcinc/phonelist como EditAction.java.
- También necesitarás añadir una sección a struts-config.xml. Puedes copiar simplemente el fichero struts-config.xml.v4 desde el
archivo del código de ejemplo sobre tu fichero struts-config.xml de src/WEB-INF. El único cambio entre las versiones 3 y 4 de struts-config.xml es que has añadido la definicón de la acción /edit.
Después de re-desplegar la aplicación ejecuta los tests de nuevo. Tu aplicación Web debería pasarlos todos con éxito.
Prueba tus Habilidades Después de Probar la Aplicación
Intenta los siguiente retos para ejercitar tus habilidades en el desarrollo dirigido a tests:
- Añade un método testSaveNewContact en NewTest que verifique que el botón Cancel funciona adecuadamente para la acción new contact. Aunque ya realizas un chequeo para asegurarte de que funciona la Cancelación, no lo has hecho para la acción new contact. Si funciona apropiadamente, deberías poder introducir información en los campos del formulario new contact, luego pulsa Cancel y haz que la lista de contactos no se incremente.
- Añade un test a EditTest que verifique si la validación está funcionando apropiadamente. Podrías probarlo programáticamente posteando un formulario edit contact con un nombre o apellido en blanco.
- Reescribe la aplicación para que interactúe con una base de datos relacional en lugar del almacenamiento en-memoria que divisaste en ContactDatabase. Esto simplemente implicaría modificar ContactDatabase.java. Tus tests serán útiles para asegurarte de que no se ha roto ninguna funcionalidad en el paso a la base de datos relacional.