1

declarative_authorization 権限を尊重してテストする方法はありますか?

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

4

3 に答える 3

2

はい、権限をテストできます。Authorization::TestHelper の下を参照してください-- spec_helper ファイルにヘルパーが必要で、Authorization::TestHelper を含めます。これにより、rspec のbeforeメソッドで現在のユーザーとその権限を指定できるメソッドが取り込まれます。

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

于 2010-03-30T02:05:08.853 に答える
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
于 2010-03-29T22:10:55.400 に答える
0

rspecではすべてのアサーションを利用できるので、それを利用したり、rpsec風に変換したりできます。

于 2010-03-29T19:12:39.127 に答える