如何使用 RSPEC 测试当前用户 & 这是我的控制器
How to Test The Current User using RSPEC & Here is my controller
这是 AdminController,它在第一个操作中使用会话检查用户的当前帐户和当前角色,在第二个操作中我们检查当前用户的当前角色,因为每个用户都有多个角色。
class AdminController < ActionController::Base
protect_from_forgery
skip_before_action :verify_authenticity_token
def current_account
if session[:current_account_id].present?
Account.find(session[:current_account_id])
end
end
def current_role
if current_account.present?
current_account.account_users.find_by(user: current_user).admin_role
else
AccountUsers::DEFAULT_USER_ROLE
end
end
end
您可以使用 FactoryBotRails 创建普通用户
let(:user) { create :user }
并像这样存根当前用户
allow_any_instance_of(AdminController).to receive(:current_user).and_return(user)
这是 AdminController,它在第一个操作中使用会话检查用户的当前帐户和当前角色,在第二个操作中我们检查当前用户的当前角色,因为每个用户都有多个角色。
class AdminController < ActionController::Base
protect_from_forgery
skip_before_action :verify_authenticity_token
def current_account
if session[:current_account_id].present?
Account.find(session[:current_account_id])
end
end
def current_role
if current_account.present?
current_account.account_users.find_by(user: current_user).admin_role
else
AccountUsers::DEFAULT_USER_ROLE
end
end
end
您可以使用 FactoryBotRails 创建普通用户
let(:user) { create :user }
并像这样存根当前用户
allow_any_instance_of(AdminController).to receive(:current_user).and_return(user)