Uploaded on

Testing de integración de aplicaciones web.

Testing de integración de aplicaciones web.

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
    Be the first to like this
No Downloads

Views

Total Views
822
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. Spinach
  • 2. ¿Qué es Spinach? Spinach es un nuevo framework de BDD (Behavior Driven Development – Desarrollo guiado por comportamiento) de alto nivel.
  • 3. Características  Escrito en Ruby.  Cuenta con la encapsulación y modularidad.  Se centra en la reutilización ya que se puede utilizar de una manera limpia a través de funciones y proyectos.  Los Features son solo objetos de Ruby.  Los Steps pueden ser extraídos en módulos.
  • 4. Características  Soporta Minitest, RSpec, así como Capybara.  Cada función tiene sus propios pasos.  Posee una simple arquitectura.  Compatibilidad Framework Web.  Utiliza el lenguaje expresivo Gherkin para ayudarle a definir las especificaciones ejecutables de la aplicación o los criterios de aceptación.
  • 5. Lenguaje Gherkin  Gherkin es el lenguaje que entiende Spinach. Permite describir el comportamiento del software sin detallar su implementación.  Gherkin sirve para dos propósitos, documentación y pruebas automatizadas.  Existen algunas convenciones:  Cada archivo fuente Gherkin contiene la descripción de una única funcionalidad.  Los archivos fuentes tienen extensión .feature.
  • 6. Estructura de un Proyecto Spinach Steps Feature
  • 7. Capybara  Es una librería que provee una abstracción entre los diferentes navegadores. Es usado por Spinach en los request spec para poder interactuar con el navegador.  Por ejemplo:  click_button “nombre_boton”  fill_in(‘Nombre’, :with => ‘Pedro’)
  • 8. Selenium  Es una librería que simula interacciones con el navegador. Permite ejecutar comandos de javascript y puede interactuar con Firefox, Google Chrome, entre otros.
  • 9. Feature  Es un archivo con extensión .feature.  Cada feature consiste en uno o más escenarios.  Cada feature puede poseer una breve descripción.  Por ejemplo: Feature: Nombre Feature In order to … As a … I want … Scenario: Nombre Scenario …
  • 10. Feature - Background  Background: En un archivo feature se puede especificar una serie de pasos comunes a todos los escenarios en el archivo.  Por ejemplo: Background: Given … When … Scenario: Nombre Scenario 1 Then … And … Scenario: Nombre Scenario 2 Then … And … …
  • 11. Steps Es un archivo con extensión .rb para cada archivo .feature Es donde se desarrolla cada uno de los pasos. Por ejemplo: Then “...” do … end
  • 12. Given, When y Then  Se utilizan estas palabras para identificar las tres partes diferentes de un escenario:  Given …  When …  Then …  Cada línea en un escenario es conocido como un step. Se puede agregar más steps para cada Given, When o Then de un escenario usando la palabra And y But
  • 13. Feature: logueo.feature
  • 14. Generar archivo logueo.rb
  • 15. Archivo generado logueo.rb
  • 16. Ejemplo Steps
  • 17. Ejecución Spinach
  • 18. Given ‘Ingreso en la pagina web de Suitei’ do visit “http://suitei.herokuapp.com”end
  • 19. And ‘Hago click en el link Sign in para loguearme’ do page.find_link(“Sign in”).clickend
  • 20. When ‘Ingreso email y password de una cuenta existente y activada’ do login! “silvina@insignia4u.com”, “123456”end
  • 21. And ‘Al hacer click en el boton Sign in’ do click_button “Sign in”end
  • 22. Then ‘Debo ver un mensaje de que se logueo con exito’ do page.has_content?(“Signed in successfully”)end
  • 23. Step no definido
  • 24. Step con error
  • 25. Links  https://github.com/codegram/spinach  https://github.com/cucumber/cucumber/wiki/ Gherkin  http://cheat.errtheblog.com/s/capybara/  http://blog.codegram.com/2011/10/how-to- achieve-more-clean-encapsulated-modular- step-definitions-with-spinach  http://blog.objectmentor.com/articles /2008/11/27/the-truth-about-bdd
  • 26. Ejemplo completo  https://github.com/grsilvinav/suiteispinach