Я очень плохо знаком с огурцом и rspec, но у меня есть кое-какие навыки и понимание рубина.
Рассматриваются следующие драгоценные камни: Devise, Declarative_Authorization и role_model
Rails 3 - это то, что я использую, и ruby 1.9.2-rc2
помни, я НЕ знаю, что делаю
Я написал особенность:
Feature: As the administrator of the site give me quick access to information
In order to do lots of stuff
As an administrator
I want to see reports and stuff
Background:
Given a logged in user with a role of "admin"
Scenario: Admin can see links
Given I am on the admin dashboard page
Then I should see all admin links
С некоторыми шагами в сети:
module AdminDashboardHelpers
def current_user_session
return @user_session if defined?(@user_session)
@user_session = user_session
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.user
end
def admin_signed_in?
@user = current_user
@user.has_role?(:admin)
end
end
World(AdminDashboardHelpers)
Given /^a logged in user with a role of "([^\"]*)"$/ do |role|
visit new_user_session_path
fill_in "Login", :with => "iam"
fill_in "Password", :with => "secret"
click_button "Log in"
admin_signed_in?
#@current_user.should has_role?(role)
end
Then /^I should see all admin links$/ do
pending # express the regexp above with the code you wish you had
end
Моя проблема в том, что при запуске функции появляется сообщение об ошибке
неопределенная локальная переменная или метод `user_session 'для #Cucumber :: Rails :: World: 0x8077e1f8
Я предполагал, что user_session - это метод, пришедший с devise.
Как проверить, играет ли пользователь определенную роль?
Или еще лучше, как мне рассказать огурцу о методах, которые есть в приложении rails от gems?
Спасибо за ваше время, это очень ценится.
--iAm