Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011

  • 929 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
929
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

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 en Grails y Pruebas funcionales con Geb (WebDriver) Fátima Casaú Pérez @fatimacasau
  • 2.
      @fatimacasau
    • 3 años desarrollando aplicaciones web con J2EE, Groovy & Grails
    • 3. 3 años en
    • 4. SCJP J2SE 5.0
    • 5. Curso ScrumManager – Gestión Proyectos con Scrum
  • 6. ¿Qué vamos a ver?
    • Tests Unitarios
      • De dominio
      • 7. De constraints
      • 8. De controller
    • Tests de Integración
    • 9. Tests Funcionales
      • Geb
  • 10. Tests Unitarios
    • Mocks: Simuladores de Objetos
      • Grails nos ofrece:
  • 16. Tests de Integración
    • Comprueban la integración entre todos los componenetes de la aplicación
    • 17. Más pesados y lentos
    • 18. Se ejecutan menos veces
  • 19. Tests Funcionales
    • En este punto ya podremos probar el interfaz gráfico así como toda la funcionalidad de la aplicación. Varias opciones:
        • Selenium-IDE + Grails Plugin Selenium-rc (Selenium1)
        • 20. Grails Plugin GEB (WebDriver, jQuery API)
          • + Grails Plugin Spock
  • 21. GEB
    • WebDriver
        • Navegadores: Firefox, Chrome, IE
        • 22. HTMLUnit
        • 23. jQuery API (inspección y navegación html)
        • 24. Lenguaje Groovy
        • 25. Documentación: http://geb.codehaus.org
  • 26. El Navegador def browser = new Browser(" http://myapp.com ") browser.go("/signup") browser.go("/signup", param1: "value1", param2: "value2") Browser.drive("http://myapp.com") { go "/signup" }
  • 27. Páginas
    • Page Object Pattern
      • Nos proporcionan:
        • modularidad,
        • 28. encapsulación,
        • 29. reutilizable
  • 30. Páginas Import geb.* class GoogleHomePage extends Page { static url = "http://google.com" static at = { title == "Google" } static content = { searchField { $("input[name=q]").value() } searchButton(to: GoogleResultsPage) { $("input[value=Google Search]") } } }
  • 31. Páginas def browser = new Browser("http://myapp.com") browser.to(SignupPage) assert browser.at(SignupPage)
  • 32. $(“title”).text() == “Inspeccionando el contenido”
      • $(“div.message”, text:contains(“Todo Ok”))
        • StartsWith, iStartsWith, contains, iContains, endsWith, iEndsWith, containsWord, iContainsWord
      • $(“li a”).size()
      • 33. $(“p”, 0).text()
      • 34. $("div").find(".b") --> $("div").filter(".b")
      • 35. $("input.loginButton").click(LoginPage)
  • 36. Javascript y Ajax
    • Javascript:
        • js.'nombreVariable'
        • 37. js.'nombreFuncion(params)
    • Contenido dinámico
        • waitFor(condicion), waitFor(tiempo(seg),condicion)
        • 38. alert()
        • 39. Confirm()
    • jQuery
        • $("div#a").jquery.mouseover()
  • 40. Ejemplo
    • Aplicación Grails de ejemplo:
    • 41. Grails Blog
  • 42. Más en: http://blogs.salenda.es/fatimacasau