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.
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