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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow