« Previous - Version 15/40 (diff) - Next » - Current version
Guillermo Gómez, 02/17/2011 06:40 pm


Cucumber

Behaviour Driven Development (BDD).

Instalación

# yum install rubygem-cucumber

BDD ejemplo

$ mkdir cucumber-1
$ cd cucumber-1
$ mkdir features
$ mkdir features/step_definitions

Describa el comportamiento en texto plano

Cucumber es una herramienta que ejecuta descripciones funcionales en texto plano como pruebas automatizadas. El lenguaje que Cucumber entiende se conoce como Gherkin.

 1# language: es
 2Característica: Buscar en cursos
 3        Con la finalidad de asegurar una mejor utilización de los cursos
 4        Los estudiantes potenciales deben ser capaces de realizar búsqueda en los cursos
 5
 6Escenario: Búsqueda por tema
 7        Dado que hay cursos que no tienen el tema "biología" 
 8        Y que hay 2 cursos , A001, B205, que cada uno tiene "biología" como uno de sus temas
 9        Cuando yo busque por "biología" 
10        Entonces yo debería ver los siguientes cursos:
11                | Id. del curso |
12                | A001          |
13                | B205          |

Corrida de prueba

$ cucumber features/f1.feature 
# language: es
Característica: Buscar en cursos
  Con la finalidad de asegurar una mejor utilización de los cursos
  Los estudiantes potenciales deben ser capaces de realizar búsqueda en los cursos

  Escenario: Búsqueda por tema                                                           # features/f1.feature:6
    Dado que hay cursos que no tienen el tema "biología"                                 # features/f1.feature:7
    Y que hay 2 cursos , A001, B205, que cada uno tiene "biología" como uno de sus temas # features/f1.feature:8
    Cuando yo busque por "biología"                                                      # features/f1.feature:9
    Entonces yo debería ver los siguientes cursos:                                       # features/f1.feature:10
      | Id. del curso |
      | A001          |
      | B205          |

1 scenario (1 undefined)
4 steps (4 undefined)
0m0.007s

You can implement step definitions for undefined steps with these snippets:

Dado /^que hay cursos que no tienen el tema "([^"]*)"$/ do |arg1|
  pending # express the regexp above with the code you wish you had
end

Dado /^que hay (\d+) cursos , A(\d+), B(\d+), que cada uno tiene "([^"]*)" como uno de sus temas$/ do |arg1, arg2, arg3, arg4|
  pending # express the regexp above with the code you wish you had
end

Cuando /^yo busque por "([^"]*)"$/ do |arg1|
  pending # express the regexp above with the code you wish you had
end

Entonces /^yo debería ver los siguientes cursos:$/ do |table|
  # table is a Cucumber::Ast::Table
  pending # express the regexp above with the code you wish you had
end

If you want snippets in a different programming language, just make sure a file
with the appropriate file extension exists where cucumber looks for step definitions.

Escriba la definición de paso en Ruby

Cree un subdirectorio step_definitions y un primer archivo de definiciones de paso como features/step_definitions/basic_steps.rb .

 1require 'rubygems'
 2require 'spec' 
 3
 4Dado /^que hay (\d+) cursos que no tienen el tema "([^"]*)"$/ do |arg1, arg2|
 5    pending # express the regexp above with the code you wish you had
 6end
 7
 8Dado /^que hay (\d+) cursos , A(\d+), B(\d+), que cada uno tiene "([^"]*)" como uno de sus temas$/ do |arg1, arg2, arg3, arg4|
 9  pending # express the regexp above with the code you wish you had
10end
11
12Cuando /^yo busque por "([^"]*)"$/ do |arg1|
13  pending # express the regexp above with the code you wish you had
14end
15
16Entonces /^yo debería ver los siguientes cursos:$/ do |table|
17  # table is a Cucumber::Ast::Table
18  pending # express the regexp above with the code you wish you had
19end