1

有没有办法测试 declarative_authorization 权限?

在文档中它有一些使用测试单元的说明,但我似乎找不到使用 rspec 的方法。

4

3 回答 3

2

是的,您可以测试权限。请参阅Authorization::TestHelper 下的此处- 在您的 spec_helper 文件中需要帮助程序,并包括 Authorization::TestHelper。这引入了允许您在 rspec 的方法中指定当前用户及其权限的before方法。

另一个提示:为了更容易创建工厂对象,declarative_authorization 有一个without_access_control方法可以让您绕过before部分中的授权。

于 2010-03-30T02:05:08.853 回答
1

I've manage to use cucumber to test the roles.

Like this:

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
于 2010-03-29T22:10:55.400 回答
0

您可以使用 rspec 中的所有断言,因此您可以使用它或将其转换为 rpsec 样式。

于 2010-03-29T19:12:39.127 回答