Как проверить, что форма предварительно заполнена значениями с помощью Cucumber и Webrat?

Я изучаю Cucumber и Webrat с Rails и хотел бы посоветовать лучший способ проверить форму "изменить". Когда я просматриваю профиль пользователя, мне предоставляется форма редактирования с информацией пользователя, предварительно заполненной полями формы. Я хотел бы иметь возможность проверить, что поля действительно содержат информацию, которую я ожидаю. Здесь мой сценарий:

  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

Огурец говорит мне, правильно, что мне нужно определить следующие пользовательские шаги:

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

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

Я уверен, что могу найти какое-то неприятное регулярное выражение, чтобы выполнить оценку этих шагов, но я чувствую, что должно быть что-то уже существующее или более элегантное, что я могу сделать. Как вы оцениваете формы с данными, предварительно заполненными в полях формы?

Ответ 1

Посмотрите на функции /step _definitions/webrat_steps.rb, следующее определение шага похоже на то, что вы ищете:

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