Introducción al testing con Grails (XPWeek)

  • 1,862 views
Uploaded on

Charla para la XPWeek el 23 de Septiembre de 2011

Charla para la XPWeek el 23 de Septiembre de 2011

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,862
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
19
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TESTING Y TDD CONGROOVY Y GRAILS por Alberto Vilches http://albertovilches.com Twitter: @albertovilches
  • 2. SOBRE MIPasado•  Trabajando en desarrollo desde 1998•  Programador en Clipper y Delphi•  Programador en Java y J2EE desde 2001•  Instructor y consultor de Bea•  Administrador de sistemas en AenaPresente•  Programador freelance en Grails y Flex•  Partner de Escuela de Groovy•  Evangelizador Groovy y Grails•  Fundador de la conferencia Greach
  • 3. AGENDA•  Introducción a Groovy•  Testing con Groovy•  Introducción a Grails•  Testing con Grails
  • 4. ¿QUÉ ES GROOVY?•  Groovy es Java•  Dinámico•  Inspirado en Ruby, Python y Smalltalk•  OOP puro•  Closures, Gstrings, Builders, DSL
  • 5. ¿QUÉ ES GROOVY?•  Groovy es Java.•  Dinámico•  Inspirado en Ruby, Python y Smalltalk•  OOP puro•  Closures, Gstrings, Builders, DSL•  No compile type-checking•  Ligeramente más lento que Java
  • 6. TESTING CON GROOVY•  Power Asserts•  GroovyTestCase•  Mocking •  Closure as OnlyOneMethodInterface •  Map as Interface •  Expando •  mockFor / stubFor
  • 7. GROOVY POWER ASSERTS
  • 8. GROOVY TEST CASE•  Añade nuevos assert*•  Y algunos métodos como shouldFail o notImplementedYet•  Nombres de métodos largos
  • 9. MOCKING CON GROOVYClosure as OnlyMethodInterface
  • 10. MOCKING CON GROOVY Map as Interface
  • 11. MOCKING CON GROOVY Expando
  • 12. MOCKING CON GROOVYa
  • 13. MOCKING CON GROOVYa
  • 14. MOCKING CON GROOVYa
  • 15. MOCKING CON GROOVYa
  • 16. GRAILS•  Introducción a Grails•  Estructura de un proyecto•  Artefactos •  Controladores •  Objetos de dominio •  Servicios•  Testing
  • 17. ¿QUÉ ES GRAILS?•  Groovy sobre Spring•  RAD en Java. Stack, no framework•  CoC -> No XML•  MVC (binding, i18n, validation) + persistencia•  Servidor (Tomcat) y bbdd (HSQL) embebidos•  Cambios en caliente, Genera WAR.•  Extensible: plugins
  • 18. TESTING GRAILS•  Dinámico: código sensible vs fácil de testear •  Mocks•  JUNIT •  Pruebas unitarias •  Pruebas de integración •  Pruebas funcionales: •  Plugin: Selenium, Geb, Canoo Webtest•  Spock, GSpec, GMock
  • 19. ESTRUCTURA DEL PROYECTO
  • 20. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES
  • 21. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS
  • 22. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBS
  • 23. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBSSERVICIOS
  • 24. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBSSERVICIOS
  • 25. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS CLASES DE DOMINIO TAGLIBSSERVICIOS
  • 26. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS CLASES DE DOMINIO TAGLIBSSERVICIOS
  • 27. MVC: CONTROLADORES
  • 28. MVC: CONTROLADORES
  • 29. MVC: CONTROLADORES
  • 30. MVC: CONTROLADORES params session request response …
  • 31. MODELO DE DATOS: GORM
  • 32. MODELO DE DATOS: GORM
  • 33. MODELO DE DATOS: GORM
  • 34. MODELO DE DATOS: GORM
  • 35. MODELO DE DATOS: GORM Genero 1 * Película
  • 36. SERVICIOS
  • 37. SERVICIOS
  • 38. SERVICIOS
  • 39. SERVICIOS
  • 40. SERVICIOS
  • 41. SERVICIOS
  • 42. SERVICIOS singleton prototype request session
  • 43. CONTROLLER TESTS•  a
  • 44. CONTROLLER TESTS•  a
  • 45. CONTROLLER TESTS•  a
  • 46. CONTROLLER TESTS: SPOCK•  a
  • 47. GORM: TESTING•  grails-datastore-gorm-tck •  In-memory GORM implementation
  • 48. •  constraints
  • 49. TEST DE INTEGRACIÓN•  Arranca instancia de Grails•  Base de datos en memoria•  Environment “test”•  Cada test en una transacción
  • 50. TEST INTEGRACIÓN: CONFIG
  • 51. TEST INTEGRACIÓN: BOOTSTRAP
  • 52. TEST INTEGRACIÓN: BOOTSTRAP
  • 53. Y MUCHO MAS: SPOCK•  a
  • 54. Y MUCHO MÁS: TEST FUNCIONALES•  a
  • 55. ¿TE GUSTA GROOVY?En Madrid, 4 de Nov. de 2011•  Apúntate en http://greach.es
  • 56. ¡GRACIAS! ¿Preguntas? ¿Dudas?