declarative_authorization 権限を尊重してテストする方法はありますか?
ドキュメントには、テストユニットを使用するためのいくつかの指示がありますが、rspec を使用する方法が見つからないようです。
declarative_authorization 権限を尊重してテストする方法はありますか?
ドキュメントには、テストユニットを使用するためのいくつかの指示がありますが、rspec を使用する方法が見つからないようです。
はい、権限をテストできます。Authorization::TestHelper の下を参照してください-- spec_helper ファイルにヘルパーが必要で、Authorization::TestHelper を含めます。これにより、rspec のbefore
メソッドで現在のユーザーとその権限を指定できるメソッドが取り込まれます。
もう 1 つのヒント: ファクトリ オブジェクトの作成を簡単にするために、declarative_authorization には、セクションwithout_access_control
で承認をバイパスできるメソッドがありますbefore
。
キュウリを使用してロールをテストすることができました。
このような:
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風に変換したりできます。