Come faccio a verificare che un modulo viene pre-popolato con valori utilizzando cetriolo e Webrat?
-
13-09-2019 - |
Domanda
Sto imparando Cetriolo e Webrat con Rails e vorrei qualche consiglio sul modo migliore per testare un modulo di "modifica". Quando passo in rassegna al profilo di un utente mi sono presentato con una forma di modifica con le informazioni dell'utente pre-popolato i campi del modulo. Mi piacerebbe essere in grado di testare che i campi non di fatto contengono le informazioni mi aspetto. Ecco il mio piano d'azione:
Scenario: View My Profile
Given I am logged in as "Mike" with password "secret"
When I go to my profile page
Then I should see "Mike" in the "Login" field
And I should see "mike@email.com" in the "Email" field
And I should see a blank "Password" field
And I should see a blank "Password confirmation" field
cetriolo mi dice, giustamente, che ho bisogno di definire i seguenti passaggi personalizzati:
Then /^I should see "([^\"]*)" in the "([^\"]*)" field$/ do |arg1, arg2|
pending
end
Then /^I should see a blank "([^\"]*)" field$/ do |arg1|
pending
end
Sono sicuro che posso capire qualche brutta regex per implementare valutare questi passaggi, ma mi sento ci deve essere qualcosa di già esistente o più elegante che posso fare. Come si fa a valutare forme con i dati pre-popolati nei campi del modulo?
Soluzione
Date un'occhiata a caratteristiche / step_definitions / webrat_steps.rb, la seguente definizione fase sembra che quello che stai cercando:
Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value|
field_labeled(field).value.should =~ /#{value}/
end