cucumber
Schrittdefinitionen
Suche…
Bemerkungen
Schrittdefinitionen werden in der Programmiersprache von einer bestimmten Implementierung von Cucumber unterstützt. Dieses Thema enthält Beispiele für Schrittdefinitionen in jeder unterstützten Programmiersprache und Beispiele für die Verwendung von Cucumber-API-Aufrufen in Schrittdefinitionen.
Einige einfache Ruby-Schrittdefinitionen
In 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
Diese Schritte üben eine Webanwendung aus. Sie sind so einfach wie sie sein können, während sie praktisch sind.
Jeder Schritt beginnt mit einem Gherkin-Schlüsselwort, das in einer Schrittdefinitionsdatei eine Methode ist, die einen Schritt bei Cucumber registriert. Die schrittbestimmende Methode benötigt einen regulären Ausdruck, der einer Zeile in einem Szenario entspricht, und einen Block, der ausgeführt wird, wenn das Szenario eine übereinstimmende Zeile erreicht. Erfassungsgruppen im regulären Ausdruck werden als Blockparameter an den Block übergeben.
Der Schritt " When enthält ein einfaches Inline-Beispiel für den Übergang von einer für Menschen lesbaren Referenz auf eine Seite ("Dokumentation") zu einer URL. Echte Gurkensuiten verwenden diese Logik normalerweise in einer separaten Methode. Die visit wird von Capybara bereitgestellt. Capybara ist nicht erforderlich, um Gurke zu verwenden, obwohl es häufig verwendet wird. visit teilt dem von Capybara kontrollierten Browser mit, die angegebene URL aufzurufen.
Der Then Schritt zeigt, wie der Inhalt einer Seite getestet werden kann. expect / to durch RSpec bereitgestellt (auch hier nicht von Gurken erforderlich , aber sehr häufig verwendet , um mit ihm). have_css wird von Capybara zur Verfügung gestellt. Die Erwartung ist, dass der angegebene CSS-Selektor einem Element auf der Seite entspricht, das den angegebenen Text enthält. Beachten Sie, dass diese Erwartung fehlschlagen würde, wenn die Browseranforderung fehlgeschlagen war.