【发布时间】:2010-03-29 18:17:41
【问题描述】:
有没有办法测试 declarative_authorization 权限?
在文档中有一些使用测试单元的说明,但我似乎找不到使用 rspec 的方法。
【问题讨论】:
标签: ruby-on-rails rspec declarative-authorization
有没有办法测试 declarative_authorization 权限?
在文档中有一些使用测试单元的说明,但我似乎找不到使用 rspec 的方法。
【问题讨论】:
标签: ruby-on-rails rspec declarative-authorization
是的,您可以测试权限。请参阅 Authorization::TestHelper 下的here - 在您的 spec_helper 文件中需要帮助程序,并包括 Authorization::TestHelper。这会引入允许您在 rspec 的 before 方法中指定当前用户及其权限的方法。
另一个提示:为了更轻松地创建工厂对象,declarative_authorization 有一个 without_access_control 方法,允许您绕过 before 部分中的授权。
【讨论】:
我已经设法使用 cucumber 来测试角色。
像这样:
require 'machinist/active_record'
require 'spec/blueprints.rb'
def user
@user ||= User.make
end
Given /^I am an Administrator$/ do
user
@user.assignments.delete_all
@user.roles.delete_all
@user.assignments << Assignment.create(:user_id => @user.id,
:role_id => Role.find_by_name("admin").id)
@user.roles.count.should == 1
@user.roles << Role.find_by_name("admin")
Authorization.current_user = @user
end
【讨论】:
您可以使用rspec中的所有断言,因此您可以使用它或将其转换为rpsec风格。
【讨论】: