簡體   English   中英

如何使用rspec測試declarative_authorization

[英]How to test declarative_authorization with rspec

有沒有辦法測試尊重方面的declarative_authorization權限?

在文檔中,它有一些使用測試單元的說明,但是我似乎找不到使用rspec的方法。

是的,您可以測試權限。 這里下授權:: TestHelper -要求佣工在spec_helper文件,包括授權:: TestHelper。 這引入了一些方法,這些方法使您可以在rspec的before方法中指定當前用戶及其特權。

另一個技巧:為了without_access_control創建工廠對象的方式,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樣式對其進行轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM