cucumber
Definizioni passo
Ricerca…
Osservazioni
Le definizioni di passaggio sono nel linguaggio di programmazione supportato da una determinata implementazione di Cucumber. Questo argomento fornisce esempi di definizioni di passaggi in ciascun linguaggio di programmazione supportato ed esempi di utilizzo di chiamate API Cucumber nelle definizioni di passaggi.
Alcune semplici definizioni di passi di Ruby
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
Questi passaggi esercitano un'applicazione web. Sono semplici quanto possono essere mentre sono ancora pratici.
Ogni fase inizia con una parola chiave Gherkin, che in un file di definizione passo è un metodo che registra un passo con Cucumber. Il metodo di definizione passo prende un'espressione regolare, che corrisponde a una riga in uno scenario e un blocco, che viene eseguito quando lo scenario raggiunge una linea corrispondente. Cattura i gruppi nell'espressione regolare vengono passati al blocco come parametri di blocco.
Il passaggio When ha un semplice esempio in linea di passare da un riferimento leggibile da un utente a una pagina ("Documentazione") a un URL. Le suite di Real Cucumber di solito mettono questa logica in un metodo separato. Il metodo di visit è fornito da Capybara. Capibara non è tenuto a usare Cetriolo, sebbene sia molto usato con esso. visit dice al browser controllato da Capybara di visitare l'URL indicato.
Il passaggio Then mostra come è possibile testare il contenuto di una pagina. expect / to è fornito da RSpec (di nuovo, non richiesto da Cucumber ma molto comunemente usato con esso). have_css è fornito da Capybara. L'aspettativa è che il selettore CSS specificato corrisponda a un elemento della pagina che contiene il testo specificato. Si noti che questa aspettativa fallirebbe se la richiesta del browser fosse fallita.