SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a 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
 

Más 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
 

Más 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
 

Último

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 

Último (20)

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 

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