SlideShare une entreprise Scribd logo
1  sur  26
Spinach
¿Qué es Spinach?
  Spinach es un nuevo
  framework de BDD (Behavior
  Driven Development –
  Desarrollo guiado por
  comportamiento) de alto
  nivel.
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.
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.
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.
Estructura de un Proyecto Spinach



               Steps



               Feature
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’)
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.
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
              …
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 …
               …
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
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
Feature: logueo.feature
Generar archivo logueo.rb
Archivo generado logueo.rb
Ejemplo Steps
Ejecución Spinach
Given ‘Ingreso en la pagina web de Suitei’ do
         visit “http://suitei.herokuapp.com”
end
And ‘Hago click en el link Sign in para loguearme’ do
        page.find_link(“Sign in”).click
end
When ‘Ingreso email y password de una cuenta existente y activada’ do
        login! “silvina@insignia4u.com”, “123456”
end
And ‘Al hacer click en el boton Sign in’ do
         click_button “Sign in”
end
Then ‘Debo ver un mensaje de que se logueo con exito’ do
        page.has_content?(“Signed in successfully”)
end
Step no definido
Step con error
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
Ejemplo completo
  https://github.com/grsilvinav/suiteispinach

Contenu connexe

Similaire à Spinach (20)

Tutorial de eclipse terminado yarker
Tutorial de eclipse terminado yarkerTutorial de eclipse terminado yarker
Tutorial de eclipse terminado yarker
 
Partesdeeclipse
PartesdeeclipsePartesdeeclipse
Partesdeeclipse
 
Java script
Java scriptJava script
Java script
 
Tutorial de eclipsee
Tutorial de eclipseeTutorial de eclipsee
Tutorial de eclipsee
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHP
 
Tutorial de eclipse_terminado
Tutorial de eclipse_terminadoTutorial de eclipse_terminado
Tutorial de eclipse_terminado
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
 
Symfony2: Optimización y rendimiento
Symfony2: Optimización y rendimientoSymfony2: Optimización y rendimiento
Symfony2: Optimización y rendimiento
 
Generando script malicioso con metasploit framework
Generando script malicioso con metasploit frameworkGenerando script malicioso con metasploit framework
Generando script malicioso con metasploit framework
 
Proyectoytzelyalonso (1)
Proyectoytzelyalonso (1)Proyectoytzelyalonso (1)
Proyectoytzelyalonso (1)
 
Maria basurto 2_b2
Maria basurto 2_b2Maria basurto 2_b2
Maria basurto 2_b2
 
TUTORIAL DE ECLIPSE
TUTORIAL DE ECLIPSETUTORIAL DE ECLIPSE
TUTORIAL DE ECLIPSE
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Tutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHPTutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHP
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
04 taller-django
04 taller-django04 taller-django
04 taller-django
 
Manual tecnico umasoft
Manual tecnico umasoftManual tecnico umasoft
Manual tecnico umasoft
 
sesion_01-JAVA.pdf
sesion_01-JAVA.pdfsesion_01-JAVA.pdf
sesion_01-JAVA.pdf
 
Eclipse 1 3
Eclipse 1 3Eclipse 1 3
Eclipse 1 3
 
Clase 1 jJAVA 2012
Clase 1 jJAVA 2012Clase 1 jJAVA 2012
Clase 1 jJAVA 2012
 

Plus de INSIGNIA4U

Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012INSIGNIA4U
 
Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.INSIGNIA4U
 
Software Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilSoftware Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilINSIGNIA4U
 
Tucuman Valley - Insignia4u - Ruby on Rails
Tucuman Valley - Insignia4u - Ruby on RailsTucuman Valley - Insignia4u - Ruby on Rails
Tucuman Valley - Insignia4u - Ruby on RailsINSIGNIA4U
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Web Performance Best Practices
Web Performance Best PracticesWeb Performance Best Practices
Web Performance Best PracticesINSIGNIA4U
 

Plus de INSIGNIA4U (7)

Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012
 
Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.Del Freelancing a la Empresa. La historia de INSIGNIA.
Del Freelancing a la Empresa. La historia de INSIGNIA.
 
Software Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo AgilSoftware Factory 2.0: El Modelo Agil
Software Factory 2.0: El Modelo Agil
 
Tucuman Valley - Insignia4u - Ruby on Rails
Tucuman Valley - Insignia4u - Ruby on RailsTucuman Valley - Insignia4u - Ruby on Rails
Tucuman Valley - Insignia4u - Ruby on Rails
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Web Performance Best Practices
Web Performance Best PracticesWeb Performance Best Practices
Web Performance Best Practices
 

Dernier

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Dernier (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

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
  • 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”).click end
  • 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
  • 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