cucumber
Définitions d'étape
Recherche…
Remarques
Les définitions d'étape se trouvent dans le langage de programmation pris en charge par une implémentation donnée de Concombre. Cette rubrique donne des exemples de définitions d'étape dans chaque langage de programmation pris en charge et des exemples d'utilisation des appels de l'API Cucumber dans les définitions d'étape.
Quelques définitions simples de l'étape Ruby
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é.