【问题标题】:How to test declarative_authorization with rspec如何使用 rspec 测试 declarative_authorization
【发布时间】:2010-03-29 18:17:41
【问题描述】:

有没有办法测试 declarative_authorization 权限?

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

【问题讨论】:

    标签: ruby-on-rails rspec declarative-authorization


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我已经设法使用 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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 对不起。我没明白。能具体一点吗?
        猜你喜欢
        • 2018-07-30
        • 2018-08-23
        • 2013-12-07
        • 2019-12-10
        • 2013-06-16
        • 1970-01-01
        • 1970-01-01
        • 2014-01-07
        • 2013-10-30
        相关资源
        最近更新 更多