2009-09-23 19 views
10

Estoy aprendiendo Cucumber and Webrat with Rails y me gustaría obtener algunos consejos sobre la mejor manera de probar un formulario de "edición". Cuando busco el perfil de un usuario, se me presenta un formulario de edición con la información del usuario rellenada previamente en los campos del formulario. Me gustaría poder probar que los campos sí contienen la información que espero. Aquí está mi escenario:¿Cómo puedo verificar que un formulario esté rellenado previamente con valores usando Cucumber y Webrat?

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 "[email protected]" in the "Email" field 
    And I should see a blank "Password" field 
    And I should see a blank "Password confirmation" field 

pepino me dice, con razón, que necesito para definir los siguientes pasos personalizados:

Then /^I should see "([^\"]*)" in the "([^\"]*)" field$/ do |arg1, arg2| 
    pending 
end 

Then /^I should see a blank "([^\"]*)" field$/ do |arg1| 
    pending 
end 

Estoy seguro de que puedo encontrar alguna expresión regular desagradable para implementar la evaluación de estos pasos , pero creo que debe haber algo ya existente o más elegante que pueda hacer. ¿Cómo evalúa los formularios con los datos rellenos previamente en los campos del formulario?

Respuesta

15

Tener un vistazo a las características/step_definitions/webrat_steps.rb, la siguiente definición de paso se parece a lo que busca:

Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value| 
    field_labeled(field).value.should =~ /#{value}/ 
end 
+0

Dang. ¡No estoy seguro de cómo me perdí eso! En base a esto, creé una versión que funciona para campos vacíos. Como en/^ el campo "([^ \"] *) "debe estar en blanco $ /" implementado como "field_labeled (field) .value.should == nil". ¡Gracias! final' – SingleShot

Cuestiones relacionadas