cucumber
Stapdefinities
Zoeken…
Opmerkingen
Stapdefinities zijn in de programmeertaal ondersteund door een bepaalde implementatie van Komkommer. Dit onderwerp geeft voorbeelden van stapdefinities in elke ondersteunde programmeertaal en voorbeelden van het gebruik van Cucumber API-aanroepen in stapdefinities.
Enkele eenvoudige Ruby-stapdefinities
In functies / step_definitions / documentatie.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
Deze stappen oefenen een webapplicatie uit. Ze zijn ongeveer zo eenvoudig als ze kunnen zijn en toch praktisch.
Elke stap begint met een Gherkin-trefwoord, dat in een stapdefinitiebestand een methode is die een stap met Komkommer registreert. De stapbepalingsmethode neemt een reguliere expressie, die overeenkomt met een regel in een scenario, en een blok, dat wordt uitgevoerd wanneer het scenario op een overeenkomende regel komt. Capture-groepen in de reguliere expressie worden als blokparameters aan het blok doorgegeven.
De stap When heeft een eenvoudig, in-line voorbeeld van het gaan van een voor mensen leesbare verwijzing naar een pagina ("Documentatie") naar een URL. Echte komkommersuites plaatsen deze logica meestal in een aparte methode. Het visit werkwijze wordt verschaft door Capybara. Capibara is niet verplicht om komkommer te gebruiken, hoewel het er heel vaak mee wordt gebruikt. visit vertelt de browser die door Capybara wordt bestuurd om de opgegeven URL te bezoeken.
De stap Then laat zien hoe de inhoud van een pagina kan worden getest. expect / to wordt geleverd door RSpec (nogmaals, niet vereist door Komkommer maar wordt er heel vaak mee gebruikt). have_css wordt verzorgd door Capybara. De verwachting is dat de gegeven CSS-selector overeenkomt met een element op de pagina dat de gegeven tekst bevat. Merk op dat deze verwachting zou mislukken als het browserverzoek was mislukt.