Rails + Cucumber: как проверить доступ к ограниченному ресурсу? - PullRequest
1 голос
/ 21 января 2012

Я только начал с огурца, одновременно изучая рельсы, и выполнил пару сценариев, чтобы опробовать его.Пожалуйста, оцените приведенный ниже сценарий и особенно скажите мне лучший способ сделать определение третьего шага.

Я использую devise и буду немного настраивать пользователя, поэтому я хотел бы подтвердить, что пользователиработать должным образом, даже если я что-то изменю.

Возможно, эта часть в порядке (любой ввод приветствуется).

Scenario: Visitor creates an account
    Given I am not authenticated
    When I do everything required to create an account
    Then I should have access to it

Первые два шага также могут быть в порядке.

Но третий достает меня.Я думал проверить 200 успехов в заголовках или 401 несанкционированных как основной способ проверить, есть ли у пользователя доступ или нет.Но я не смог найти способ сделать это.Если у меня есть правильная идея, какой код это сделать?Если у меня неправильное представление, почему это так и как лучше это сделать?

Then /^I should have access to it$/ do
  visit edit_user_registration_path
  page.should have_selector "something that only exists on the edit registration page" #works but seems very brittle
  # my failed attempt at using rspec inside the step definition:
  # get edit_user_registration_path
  # response.headers["Status"].downcase.should == "200 success"
  #
  # another failed attempt:
  # response.should render_template(...)
  # end
end

1 Ответ

1 голос
/ 21 февраля 2012

Прежде всего, я бы выделил то, что вы хотите, в двух сценариях. Первый: «Посетитель создает учетную запись», где я заменил бы последний шаг проверкой сообщения, которое должен увидеть пользователь, т.е. затем я должен увидеть «Учетная запись успешно создана». Второе: «Пользователь входит в систему», где вы можете проверить, нажав на любую ссылку, доступную только зарегистрированным пользователям. В любом случае, если вы используете Cucumber, RSpec, Devise, я настоятельно рекомендую вам прочитать Rails 3 в действии , где вы найдете именно то, что ищете. Есть пример, где вы также научитесь использовать таблицы огурцов и многое другое.

Надеюсь, это поможет,

...