Un jour, une gem

28/01/2012

Samedi c'est Cucumber

gem install cucumber

Le concombre magique

Cucumber est l’outil pour écrire les spécifications d’une future application et pour générer vos tests. Celui- il permet d’écrire en full-text ce que vous voulez que votre application fasse.

Un petit exemple pour vous mettre l’eau à la bouche :

Cucumber

Fonctionnalité: Addition
  Afin de gagner du temps lors du calcul de la facture
  En tant que commerçant
  Je souhaite pouvoir faire une addition

  Plan du Scénario: Addition de deux nombres
    Soit une calculatrice
    Et que j'entre <a> pour le premier nombre
    Et que je tape sur la touche "+"
    Et que j'entre <b> pour le second nombre
    Lorsque je tape sur la touche "="
    Alors le résultat affiché doit être <somme>

Avec le script Ruby (pleins d’expressions régulières) 

# encoding: utf-8
Soit /^une calculatrice$/ do
  @calc = Calculatrice.new
end

Etantdonné /^qu'on tape (.*)$/ do |n|
  @calc.push n.to_i
end

Etantdonné /^que j'entre (\d+) pour le (.*) nombre/ do |n, x|
  @calc.push n.to_i
end

Lorsque /^je tape sur la touche "="$/ do
  @expected_result = @calc.additionner
end

Lorsqu /on tape additionner/ do
  @expected_result = @calc.additionner
end

Alors /le résultat affiché doit être (\d*)/ do |result|
  result.to_i.should == @expected_result
end

Alors /le résultat doit être (\d*)/ do |result|
  result.to_i.should == @expected_result
end

Après on le lance avec un petit :

cucumber monfichier.feature

Et je vous laisse apprécier le résultat.

Les liens utiles :