Testing Ruby on Rails (spanish)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Testing Ruby on Rails (spanish) - Presentation Transcript

    1. Testing Ruby on Rails Conferencia @Rails Hispana :: 25/11/2006 [email_address]
    2. Contenidos
        • Historia: Fred, Kent, Martin y David
        • Teoría: Ruby Test::Unit con RadRails
        • Práctica: Testing con Rails
    3. http://www.cs.unc.edu/~brooks/ Fred Brooks 1975: “The Mythical Man-Month” ¼ Especificar 1/6 Programar ½ Tests 1986: En su artículo No Silver Bullet: Modelo en cascada = sugiere el Modelo Incremental
    4. Kent Beck http://www.threeriversinstitute.org/Kent%20Beck.htm
        • 1994: “Simple Smalltalk Testing”
        • Framework para automatizar
        • los tests unitarios
        • 2002: “Test Driven Development”
        • Escribir los tests antes del código
    5. Martin Fowler http://www.martinfowler.com/
      • 1999: “Refactoring”
      • Mejorar el mantenimiento + extensibilidad de los programas gracias una colección de refactorizaciones
      • 2000: “Integración Continua”
      • Agilizar el proceso de integración
      • con builds automáticos diarios
    6. David Heinemeier Hansson http://www.loudthinking.com/arc/000421.html “ ... I think test-driven development has been most rewarding. It gives you the courage to execute on the deeper understanding... So, like, do your tests, 'mkay?” loudthinking.com - 11/03/2005
    7. Qué era Testing?
        • Pruebas manuales
        • Debug de las aplicaciones web mediante la GUI
        • Integración manual al último momento, sin pruebas de regresión
      pocos tests para respetar el plazo Más defectos no detectados Objetivo: Entregar “algo” Cliente :-(( Programador :-(
    8. Qué es Testing?
        • Automatizable: implementado con Test::Unit.
        • Rápido: 2307 tests de Rails en 11s
        • Integración Continua: Ayuda la vida de programadores
        • Mejora el diseño con la Refactorización
        • Documenta el código
      Objetivo: Calidad Buena cobertura de tests más receptivo al cambio Cliente & Programador :-)
    9. Qué es un test unitario? TDD! Test Driven Development = Escribir los tests primero!
    10. Qué es un test unitario?
        • 1 clase => 1 clase de test
        • 1 método => 1 test
        • Convenciónes de nombre:
            • CalculadorTest <=> Calculador
        • El nombre del método empieza por test_
        • assert_equal( esperado, prueba, msg )
        • assert_not_nil( prueba, msg )
        • assert_raises(Excepción) { bloqueo de código }
        • y mucho más en http://www.ruby-doc.org/core/classes/Test/Unit.html
      Los métodos assert
    11. RadRails
        • Trabajar con tests en RadRails es fácil y divertido
        • mediante una GUI:
        • Viene con los tests específicos a Rails:
    12. 1 + 1 = 2?
    13. Error? Un problema de programación genera una “Excepción”
    14. Fallo (Failure)? Cuando el resultado no es lo esperado:
    15. Éxito ?
        • ¡Adicción a la barra verde!
    16. Rails viene con tests . /script/generate model Product exists test/unit/ create test/fixtures/ create app/models/product.rb create test/unit/product_test.rb create test/fixtures/products.yml ...
    17. Tests Unitarios
    18. BBDD para los tests
    19. La magia de las Fixtures
        • Fixtures son datos reutilizables para los tests
      ¡Magia! Rails inserta automáticamente:
    20. Ejemplo de test unitario
    21. Tests Funcionales
    22. Test de una petición GET
    23. Test de una petición POST
    24. Qué es un Mock en Rails ?
        • Un Mock es una clase falsa que implementa la misma
        • interfaz que tu clase real:
    25. Rails viene con Mock mocks/development: objetos Mock para el desarallo (BBDD development) mocks/test: objetos Mock para los tests (BBDD test)
    26. Ejemplo de mocks/test c
    27. Por qué usar Mocks? (1)
        • mejorar tus tests unitarios aislando la clase de sus dependencias (sino es 1 test de integración)
        • remplazar una dependencia que no es siempre disponible (conexión de red, web-service, ...)
    28. Por qué usar Mocks? (2)
        • incrementar el rendimiento para ejecutar los tests (ej. llamadas a la BBDD son muy lentas)
        • ayudar al reparto del trabajo para cada capa de la aplicación (Presentación, Negocio)
        • Más? http://www.martinfowler.com/articles/mocksArentStubs.html
    29. Tests de Aceptación de Usuario
        • http://www.openqa.org/selenium/ http://www-128.ibm.com/developerworks/library/wa-selenium-ajax/
      Selenium Compatible con
    30. Selenium-IDE
      • Abrir la página de google.com
      • Teclar “conferencia Rails”
      • Click y esperar
      • Comprobar que contiene el texto &quot;Madrid&quot;
    31. Selenium TestRunner
    32. Selenium on Rails
    33. Usos de Selenium
        • Automatizar las pruebas de aceptación de usuario
        • Comprobar la compatibilidad cross-browser de tu aplicación
        • Selenium es compatible con:
        • Windows (Internet Explorer 6.0, Firefox 0.8 – 2.0, Opera 8)
        • Mac OS X (Safari 1.3+, Firefox 0.8 – 2.0, Camino 1.0a1)
        • Linux (Firefox 0.8 to 2.0, Konqueror )
    34. rcov
        • Puedes saber qué partes de tu programa tienen cobertura con los tests y qué partes faltan
        • desarrollado por Mauricio Fernandez
      • http://eigenclass.org/hiki.rb?rcov
    35. Cobertura de tests
    36. Agiledox
        • Generar Especificaciones Funcionales a partir de
        • los tests:
        • desarrollado por Ben Griffith
      • http://www.reevoo.com/blogs/bengriffiths/2006/04/05/rails-agiledox-browser/
    37. Agiledox browser
        • PREGUNTAS?

    + garnierjmgarnierjm, 4 years ago

    custom

    4365 views, 3 favs, 3 embeds more stats

    Talk given at the RailsConf Hispana (http://www.con more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 4365
      • 4343 on SlideShare
      • 22 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 0
    Most viewed embeds
    • 12 views on http://21croissants.blogspot.com
    • 8 views on http://rubisobrerieles.blogspot.com
    • 2 views on http://bocode.blogspot.com

    more

    All embeds
    • 12 views on http://21croissants.blogspot.com
    • 8 views on http://rubisobrerieles.blogspot.com
    • 2 views on http://bocode.blogspot.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories