cucumber
Stegdefinitioner
Sök…
Anmärkningar
Stegdefinitioner finns på programmeringsspråket som stöds av en given implementering av gurka. Detta ämne ger exempel på stegdefinitioner i varje stöds programmeringsspråk och exempel på användning av Cucumber API-samtal i stegdefinitioner.
Några enkla Ruby-stegdefinitioner
I funktioner / step_definitions / dokumentation.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
Dessa steg utövar en webbapplikation. De är ungefär så enkla som de kan vara medan de fortfarande är praktiska.
Varje steg börjar med ett Gherkin-nyckelord, som i en stegdefinitionsfil är en metod som registrerar ett steg med gurka. Den steg definierande metoden tar ett regelbundet uttryck, som matchar en linje i ett scenario, och ett block, som körs när scenariot kommer till en matchande rad. Fångstgrupper i det reguljära uttrycket överförs till blocket som blockparametrar.
When steget har ett enkelt, in-line exempel på att gå från en mänsklig läsbar referens till en sida ("Dokumentation") till en URL. Real Cucumber-sviter sätter vanligtvis denna logik på en separat metod. visit tillhandahålls av Capybara. Capybara krävs inte för att använda gurka, även om den vanligtvis används tillsammans med den. visit berättar webbläsaren kontrollerad av Capybara att besöka den angivna URL: en.
De Then steg visar hur innehållet på en sida kan testas. expect / to tillhandahålls av RSpec (igen, inte krävs av gurka men mycket vanligt med det). have_css tillhandahålls av Capybara. Förväntningen är att den givna CSS-väljaren matchar ett element på sidan som innehåller den givna texten. Observera att denna förväntan skulle misslyckas om webbläsarförfrågan hade misslyckats.