如何使用 rspec 测试 declarative_authorization

发布于 2024-08-26 14:55:14 字数 91 浏览 10 评论 0原文

有没有办法测试 declarative_authorization 权限?

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

Is there a way to test the declarative_authorization permissions with respect?

In the documentation it has some instructions to use test unit, but I can't seem to find a way to use rspec.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦中楼上月下 2024-09-02 14:55:14

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

另一个提示:为了更轻松地创建工厂对象,declarative_authorization 有一个 without_access_control 方法,允许您绕过 before 部分中的授权。

Yes, you can test permissions. See here under Authorization::TestHelper -- require the helpers in your spec_helper file, and include Authorization::TestHelper. This pulls in methods that allow you to specify the current user and its privileges in rspec's before method.

Another tip: to make it easier to create factory objects, declarative_authorization has a without_access_control method that allows you to bypass authorization in your before sections.

寒冷纷飞旳雪 2024-09-02 14:55:14

我设法使用黄瓜来测试角色。

像这样:

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

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
独享拥抱 2024-09-02 14:55:14

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

You can use all assertion in rspec, so you can use it or convert it in rpsec style.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文