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

herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdffrank0071
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesssuserbe0d1c
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.sofiasonder
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariaandresingsiseo
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfprofmartinsuarez
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxJohanna4222
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometriasofiasonder
 

Último (20)

herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 

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