Académique Documents
Professionnel Documents
Culture Documents
Aprendiz de todo, maestro de nada. Me gusta trabajar con mquinas: - Developer Me gusta trabajar con personas: - Scrum Master - Mentor, Coach y Trainer
Un poco de historia
2004: Spring 1.0 2006: Spring 2.0 2007: Spring 2.5 2010: Spring 3.0 2011: Spring 3.1
Arquitectura
Arquitectura
Arquitectura
TESTING TESTING
Qu es TDD?
Qu es TDD?
Me gusta ms que se le llame: Diseo Dirigido por Ejemplos (Examples Driven Design)
Persistencia Persistencia
Vista
Controllers
Lgica Negocio
Sistemas Perifricos
BD
Persistencia Persistencia
Vista
Controllers
Lgica Negocio
Sistemas Perifricos
BD
Dos mundos!!
Persistencia Persistencia
Vista
Controllers
Lgica Negocio
Sistemas Perifricos
BD
Tres mundos!!
Cogiendo flow...
Funcionalidad Controller
Cogiendo flow...
Funcionalidad Controller
Tests Unitarios
Cogiendo flow...
Funcionalidad Controller
Los colaboradores del controller son dobles ya que no tenemos a los objetos originales
Cogiendo flow...
Funcionalidad Controller
Cogiendo flow...
Funcionalidad Controller
Utilizamos...
Cogiendo flow...
Funcionalidad Controller
Utilizamos...
Cogiendo flow...
La inicializacin:
Cogiendo flow...
La inicializacin:
Cogiendo flow...
El mtodo de test:
Cogiendo flow...
El mtodo de test:
Cogiendo flow...
El mtodo de test:
Cogiendo flow...
El mtodo de test:
Cogiendo flow...
El controller: Es una clase plana
Y ahora qu?
Tests Unitarios
Ten en cuenta
Ten en cuenta
Spring no aparece en los test unitarios Disea tus clases sin pensar en frameworks
Ten en cuenta
Spring no aparece en los test unitarios Disea tus clases sin pensar en frameworks Usa TDD como herramienta de diseo.
Test de Integracin
Persistencia Persistencia
Vista
Controllers
Lgica Negocio
Sistemas Perifricos
BD
Test de Integracin
Persistencia Persistencia
Controllers
Lgica Negocio
Sistemas Perifricos
BD
Un ejemplo prctico
@Inject
@Component
Kent Beck
Consejo
No abandones el TDD en los test de integracin, deja que estos te guen...
Qu pasa con Qu pasa con los baby steps? los baby steps?
http://blog.jmbeas.es/2011/07/25/pasito-a-pasito/
Persistencia
Aadidas Anotaciones
Persistencia
Cuidado con los Cuidado con los Modelos anmicos!! Modelos anmicos!!
Martin Fowler
http://martinfowler.com/bliki/AnemicDomainModel.html
Martin Fowler
Estamos haciendo JABOL!! Programamos en JAva como si fuera coBOL Estructuras de datos + procedimientos
A tener en cuenta
- Es posible hacer P.O.O con Spring.
A tener en cuenta
- Es posible hacer P.O.O con Spring. - Es fcil caer en las tentaciones de los frameworks.
A tener en cuenta
- Es posible hacer P.O.O con Spring. - Es fcil caer en las tentaciones de los frameworks. - Es posible hacer DDD (Domain Driven Design) con Spring
Probando la persistencia
Opciones
- Test Unitarios Simular el API de BD - Test Integracin Contra una base de datos
Test Unitarios
- Simulacin API de BD (JDBC)
Test Unitarios
- Simulacin API de BD (JDBC) + Mocks de PreparedStatement, etc
Test Unitarios
- Simulacin API de BD (JDBC) + Mocks de PreparedStatement, etc
Test Unitarios
- Simulacin API de BD (JDBC) - DBUnit (dbunit.org)
Test de Integracin
- Base de datos real + Commit + Rollback de los test - Base de datos en memoria
Todo depende de lo Todo depende de lo que quieras probar que quieras probar
Conclusiones
- Utiliza lo que necesites en cada momento. - No supedites tu arquitectura a un framework. - No seas talibn, todo es bueno y malo a la vez.
Preguntas