1


1

rspecでdeclarative_authorizationをテストする方法

declarative_authorizationパーミッションを尊重してテストする方法はありますか?

ドキュメントにはテストユニットを使用するためのいくつかの指示がありますが、rspecを使用する方法を見つけることができないようです。

3 Answer


2


はい、許可をテストできます。 Authorization

TestHelperの下のhttp://www.tzi.org/~sbartsch/declarative_authorization/master/[here]を参照してください。spec_helperファイルにヘルパーを必要とし、Authorization :: TestHelperを含めます。 これにより、rspecの `before`メソッドで現在のユーザーとその権限を指定できるメソッドが取り込まれます。

もう1つのヒント:ファクトリオブジェクトの作成を容易にするために、declarative_authorizationには、「before_」セクションで認証をバイパスできる「without_access_control」メソッドがあります。


1


キュウリを使用して役割をテストすることができました。

このような:

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


0


rspecではすべてのアサーションを使用できるため、rpsecスタイルで使用または変換できます。