cucumber Une définition d'étape de concombre dans Ruby


Exemple

Dans features / step_definitions / documentation.rb:

When /^I go to the "([^"]+)" documentation$/ do |section|
  path_part =
    case section
      when "Documentation"
        "documentation"
      else
        raise "Unknown documentation section: #{section}"
    end
  visit "/documentation/#{path_part}/topics"
end

Then /^I should see the "([^"]+) documentation"$/ do |section|
  expect(page).to have_css('h2.doctag_title a', text: section)
end

Ces étapes exercent une application Web. Ils sont à peu près aussi simples que possible tout en étant pratiques.

Chaque étape commence par un mot-clé Gherkin, qui dans un fichier de définition d'étape est une méthode qui enregistre une étape avec Concombre. La méthode de définition des étapes prend une expression régulière, qui correspond à une ligne dans un scénario, et un bloc, qui est exécuté lorsque le scénario atteint une ligne correspondante. Les groupes de capture dans l'expression régulière sont transmis au bloc en tant que paramètres de bloc.

L'étape When contient un exemple simple, en ligne, de passage d'une référence lisible par l'homme à une page ("Documentation") à une URL. Les suites de concombres réels placent généralement cette logique dans une méthode distincte. La méthode de visit est fournie par Capybara. Capybara n'est pas obligé d'utiliser le Concombre, bien qu'il soit très couramment utilisé avec lui. visit indique au navigateur contrôlé par Capybara de visiter l’URL donnée.

L'étape Then montre comment tester le contenu d'une page. expect / to est fourni par RSpec (encore une fois, pas requis par le concombre mais très couramment utilisé avec elle). have_css est fourni par Capybara. Le sélecteur CSS donné doit correspondre à un élément de la page contenant le texte donné. Notez que cette attente échoue si la requête du navigateur a échoué.

Pour plus d'exemples, voir la rubrique "Définition de l'étape" .