TESTING Y TDD CONGROOVY Y GRAILS             por Alberto Vilches          http://albertovilches.com             Twitter: @...
SOBRE MIPasado•  Trabajando en desarrollo desde 1998•  Programador en Clipper y Delphi•  Programador en Java y J2EE desde ...
AGENDA•  Introducción a Groovy•  Testing con Groovy•  Introducción a Grails•  Testing con Grails
¿QUÉ ES GROOVY?•    Groovy es Java•    Dinámico•    Inspirado en Ruby, Python y Smalltalk•    OOP puro•    Closures, Gstri...
¿QUÉ ES GROOVY?•    Groovy es Java.•    Dinámico•    Inspirado en Ruby, Python y Smalltalk•    OOP puro•    Closures, Gstr...
TESTING CON GROOVY•  Power Asserts•  GroovyTestCase•  Mocking   •    Closure as OnlyOneMethodInterface   •    Map as Inter...
GROOVY POWER ASSERTS
GROOVY TEST CASE•  Añade nuevos assert*•  Y algunos métodos como   shouldFail o   notImplementedYet•  Nombres de métodos l...
MOCKING CON GROOVYClosure as OnlyMethodInterface
MOCKING CON GROOVY    Map as Interface
MOCKING CON GROOVY      Expando
MOCKING CON GROOVYa
MOCKING CON GROOVYa
MOCKING CON GROOVYa
MOCKING CON GROOVYa
GRAILS•  Introducción a Grails•  Estructura de un proyecto•  Artefactos   •  Controladores   •  Objetos de dominio   •  Se...
¿QUÉ ES GRAILS?•    Groovy sobre Spring•    RAD en Java. Stack, no framework•    CoC -> No XML•    MVC (binding, i18n, val...
TESTING GRAILS•  Dinámico: código sensible vs fácil de testear   •  Mocks•  JUNIT   •  Pruebas unitarias   •  Pruebas de i...
ESTRUCTURA DEL PROYECTO
VISIÓN GENERAL   Uso directo                            Inyección SpringCONTROLADORES
VISIÓN GENERAL   Uso directo                            Inyección SpringCONTROLADORES                VISTAS
VISIÓN GENERAL   Uso directo                            Inyección SpringCONTROLADORES                VISTAS               ...
VISIÓN GENERAL   Uso directo                             Inyección SpringCONTROLADORES                VISTAS              ...
VISIÓN GENERAL   Uso directo                             Inyección SpringCONTROLADORES                VISTAS              ...
VISIÓN GENERAL       Uso directo                                 Inyección SpringCONTROLADORES                VISTAS      ...
VISIÓN GENERAL       Uso directo                                 Inyección SpringCONTROLADORES                VISTAS      ...
MVC: CONTROLADORES
MVC: CONTROLADORES
MVC: CONTROLADORES
MVC: CONTROLADORES     params     session     request     response     …
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM    Genero 1   *   Película
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS            singleton            prototype            request            session
CONTROLLER TESTS•  a
CONTROLLER TESTS•  a
CONTROLLER TESTS•  a
CONTROLLER TESTS: SPOCK•  a
GORM: TESTING•  grails-datastore-gorm-tck   •  In-memory GORM implementation
•  constraints
TEST DE INTEGRACIÓN•  Arranca instancia de Grails•  Base de datos en memoria•  Environment “test”•  Cada test en una trans...
TEST INTEGRACIÓN: CONFIG
TEST INTEGRACIÓN: BOOTSTRAP
TEST INTEGRACIÓN: BOOTSTRAP
Y MUCHO MAS: SPOCK•  a
Y MUCHO MÁS: TEST          FUNCIONALES•  a
¿TE GUSTA GROOVY?En Madrid, 4 de Nov. de 2011•  Apúntate en http://greach.es
¡GRACIAS!  ¿Preguntas?   ¿Dudas?
Upcoming SlideShare
Loading in...5
×

Introducción al testing con Grails (XPWeek)

2,036

Published on

Charla para la XPWeek el 23 de Septiembre de 2011

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,036
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Introducción al testing con Grails (XPWeek)

  1. 1. TESTING Y TDD CONGROOVY Y GRAILS por Alberto Vilches http://albertovilches.com Twitter: @albertovilches
  2. 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. 3. AGENDA•  Introducción a Groovy•  Testing con Groovy•  Introducción a Grails•  Testing con Grails
  4. 4. ¿QUÉ ES GROOVY?•  Groovy es Java•  Dinámico•  Inspirado en Ruby, Python y Smalltalk•  OOP puro•  Closures, Gstrings, Builders, DSL
  5. 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. 6. TESTING CON GROOVY•  Power Asserts•  GroovyTestCase•  Mocking •  Closure as OnlyOneMethodInterface •  Map as Interface •  Expando •  mockFor / stubFor
  7. 7. GROOVY POWER ASSERTS
  8. 8. GROOVY TEST CASE•  Añade nuevos assert*•  Y algunos métodos como shouldFail o notImplementedYet•  Nombres de métodos largos
  9. 9. MOCKING CON GROOVYClosure as OnlyMethodInterface
  10. 10. MOCKING CON GROOVY Map as Interface
  11. 11. MOCKING CON GROOVY Expando
  12. 12. MOCKING CON GROOVYa
  13. 13. MOCKING CON GROOVYa
  14. 14. MOCKING CON GROOVYa
  15. 15. MOCKING CON GROOVYa
  16. 16. GRAILS•  Introducción a Grails•  Estructura de un proyecto•  Artefactos •  Controladores •  Objetos de dominio •  Servicios•  Testing
  17. 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. 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. 19. ESTRUCTURA DEL PROYECTO
  20. 20. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES
  21. 21. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS
  22. 22. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBS
  23. 23. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBSSERVICIOS
  24. 24. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS TAGLIBSSERVICIOS
  25. 25. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS CLASES DE DOMINIO TAGLIBSSERVICIOS
  26. 26. VISIÓN GENERAL Uso directo Inyección SpringCONTROLADORES VISTAS CLASES DE DOMINIO TAGLIBSSERVICIOS
  27. 27. MVC: CONTROLADORES
  28. 28. MVC: CONTROLADORES
  29. 29. MVC: CONTROLADORES
  30. 30. MVC: CONTROLADORES params session request response …
  31. 31. MODELO DE DATOS: GORM
  32. 32. MODELO DE DATOS: GORM
  33. 33. MODELO DE DATOS: GORM
  34. 34. MODELO DE DATOS: GORM
  35. 35. MODELO DE DATOS: GORM Genero 1 * Película
  36. 36. SERVICIOS
  37. 37. SERVICIOS
  38. 38. SERVICIOS
  39. 39. SERVICIOS
  40. 40. SERVICIOS
  41. 41. SERVICIOS
  42. 42. SERVICIOS singleton prototype request session
  43. 43. CONTROLLER TESTS•  a
  44. 44. CONTROLLER TESTS•  a
  45. 45. CONTROLLER TESTS•  a
  46. 46. CONTROLLER TESTS: SPOCK•  a
  47. 47. GORM: TESTING•  grails-datastore-gorm-tck •  In-memory GORM implementation
  48. 48. •  constraints
  49. 49. TEST DE INTEGRACIÓN•  Arranca instancia de Grails•  Base de datos en memoria•  Environment “test”•  Cada test en una transacción
  50. 50. TEST INTEGRACIÓN: CONFIG
  51. 51. TEST INTEGRACIÓN: BOOTSTRAP
  52. 52. TEST INTEGRACIÓN: BOOTSTRAP
  53. 53. Y MUCHO MAS: SPOCK•  a
  54. 54. Y MUCHO MÁS: TEST FUNCIONALES•  a
  55. 55. ¿TE GUSTA GROOVY?En Madrid, 4 de Nov. de 2011•  Apúntate en http://greach.es
  56. 56. ¡GRACIAS! ¿Preguntas? ¿Dudas?
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×