Está en la página 1de 6

1

Contenido


Entorno de desarrollo en Windows (en CMD)

BDD ANDREA

Cucumber

Given When Then & And

Estructura de un Proyeto Basada en Cucumber

Anexos




2


Entorno de desarrollo en Windows (en CMD)

1. Bajarse de http://rubyinstaller.org/downloads/ la versin 2 de Ruby e instalarla. (La de 32 bits!! -
El de 64 tiene entre otros posibles problemas, incompatibilidades con la gem Poltergeist)
-Marcar opciones install Td/Tk support, add ruby executables to your path, associate
.rb and .rbk files with this ruby installation

2. Descargarse de la misma ruta el DevelopmentKit, y extraerlo en una carpeta (ojo, el de la
versin 2 y de 32bits).

Abrimos un cmd y ejecutamos set LANG= (no se si es necesario, pero por si acaso, esto evita
que haya posibles problemas con el cygwin y ruby Setea la variable de entorno LANG a nada)

3. En el mismo CMD ir al directorio donde est el DevelopmentKit, y ejecutar lo siguiente:

a. ruby dk.rb init --force
b. ruby dk.rb install

4. Ejecutar los siguientes comandos para instalar los gems necesarios:
a. gem update --system
b. gem update
c. gem install bundler (en la ruta del proyecto)
d. bundle install (en la ruta del proyecto)

5. Los gems a instalar seran los siguientes. No es necesario instalarlo manualmente. Los listamos
a modo informativo: Lo podemos chequear con gem list.

6. Instalar Git, la descarga la se obtiene de http://git-scm.com/





3


BDD ANDREA

Validar que se encuentren instaladas las gemas
*** LOCAL GEMS ***

actionpack (4.1.0)
actionview (4.1.0)
activemodel (4.1.0)
activesupport (4.1.0)
bigdecimal (1.2.5, 1.2.0)
builder (3.2.2)
bundler (1.6.2, 1.6.1)
byebug (3.1.2)
capybara (2.2.1)
certified (0.1.1)
childprocess (0.5.3, 0.5.2)
cliver (0.3.2)
columnize (0.8.9)
commonwatir (4.0.0)
cucumber (1.3.14)
debase (0.0.9)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.3.2)
diff-lcs (1.2.5)
erubis (2.7.0)
ffi (1.9.3 x86-mingw32, 1.9.0 x86-min
firewatir (1.9.4)
gherkin (2.12.2 x86-mingw32)
headless (1.0.1)
httmultiparty (0.3.14)
httparty (0.13.1)
i18n (0.6.9)
io-console (0.4.2)
json (1.8.1, 1.7.7)
mime-types (2.2)
mimemagic (0.2.1)
mini_magick (3.7.0, 3.5.0)
mini_portile (0.6.0, 0.5.3)
minitest (5.3.3, 5.3.2, 4.3.2)
multi_json (1.9.3, 1.9.2)
multi_test (0.1.1)
multi_xml (0.5.5)
multipart-post (2.0.0)
netrc (0.7.7)

nokogiri (1.6.2.rc2 x86-mingw32)
parallel (1.0.0)
parallel_tests (0.16.10)
poltergeist (1.5.0)
psych (2.0.5, 2.0.0)
rack (1.5.2)
rack-test (0.6.2)
railties (4.1.0)
rake (10.3.1, 10.2.2, 0.9.6)
rautomation (0.14.1)
rdoc (4.1.1, 4.0.0)
rest_client (1.7.3)
rspec (2.14.1)
rspec-core (2.14.8)
rspec-expectations (2.14.5)
rspec-mocks (2.14.6)
rspec-rails (2.14.2)
ruby-debug-ide (0.4.23.beta1)
rubygems-update (2.2.2)
rubyzip (1.1.3)
selenium-webdriver (2.41.0)
subexec (0.2.3)
test-unit (2.5.5, 2.0.0.0)
thor (0.19.1)
thread_safe (0.3.3)
tzinfo (1.1.0)
watir (5.0.0 ruby x86-mingw32)
watir-classic (4.0.1)
watir-rspec (1.1.2)
watir-scroll (0.1.0)
watir-webdriver (0.6.9, 0.6.8)
webrat (0.7.3)
websocket (1.1.2, 1.0.7)
websocket-driver (0.3.3, 0.3.2)
win32-api (1.5.1 universal-mingw32)
win32-process (0.7.4)
win32screenshot (1.0.10)
windows-api (0.4.2)
windows-pr (1.2.3)
xpath (2.0.0)

** Instalar las gemas que hagan falta.
Ejecutar el comando gem install nombre_gema

Ejemplo: gem install nokogiri


4


Cucumber

Es una herramienta que ejecuta descripciones funcionales escritas en un texto plano la finalidad de
ejecutar pruebas funcionales.

Cucumber entiende un lenguaje llamado Gherkin


Un archivo de Gherkin
contiene la siguiente:

Feature: Es la descripcin de
la funcionalidad que se desea
probar en su punto ms
genrico.

Scenario: es un caso
concreto de negocio que
desea probarse.

Steps: pasos que deben
ejecutarse para llegar a la
Accin de negocio que queremos probar.

Given When Then & And
Los escenarios de cucumber se conforman de Steps, tambin llamados Givens, Whens, Thens.

Given
El propsito de los Givens es conconocer las precondiciones requeridas para llegar a probar el caso
funcional deseado

When
El propsito de los When es describir la accin que usuario debe realizar para pode probar el caso
deseado.

Then
El propsito de los Thens es observar la repuesta esperada por la prueba.

And
Si se tiene ms de una definicin de Given, When, y Then usamos AND.



5


Estructura de un Proyeto Basado en Cucumber

El proyecto est estructurado de la siguiente manera:



Donde:

config: directorio que contiene la informacin relacionada a la configuracin de la aplicacin.

features: Contiene las clases, pasos y definicin de features y escenarios para la automatizacin de
pruebas.

test_result: Contiene el resultado de la ejecucin de las pruebas.




Dentro del directorio Feature se encuentran los directorios:

pages: contiene las clases escritas en Ruby utilizando un Web driver (watir) para manipular el DOM del
Sitio WEB

steps_definitions: contiene la interpretacin de los pasos escritos en lenguaje natural a Ruby

support: contiene archivos de configuracin adicional (Dependen de las necesidades del proyecto)

Adicionalmente se encuentran archivos con la extensin feature.

En estos archivos se define un feature con el lenguaje gherkin.


Anexos

Ejecucin de Pruebas
Para ejecutar una prueba se debe ir mediante la lnea de comandos al directorio donde se encuentra el
proyecto y ejecutar el siguiente comando.

cucumber


Descarga del Cdigo

6

Para descargar el Proyecto se requiere un usuario de BitBucket.
Para obtenerlo visitar la siguiente liga.

https://bitbucket.org/
Adicionalmente solicitar a tu manager permisos al proyecto testing_bancomer indicando el usuario
previamente creado y descargarlo.

Posteriormente desde la lnea de comandos ejecutar
git clone username@host:/path/to/repository

ejemplo:
git clone https://usuario@bitbucket.org/proyecto.git

Posteriormente agregar el proyecto mediante el IDE rubymine


Sitios de consulta

Para conocer ms de acerca de cucumber seguir las siguientes ligas.

https://github.com/cucumber/cucumber/wiki
https://github.com/cucumber/cucumber/wiki/Hooks
https://github.com/cucumber/cucumber/wiki/cucumber.yml
https://github.com/cucumber/cucumber/wiki/Tags

http://rogerdudler.github.io/git-guide/index.es.html
http://nvie.com/posts/a-successful-git-branching-model/
https://www.codeschool.com/courses/try-git

http://www.jetbrains.com/ruby/webhelp/cloning-a-repository-from-github.html