如何使用RSPEC测试当前用户,这是我的控制器



这是AdminController,它在第一个操作中使用session检查用户的当前帐户和当前角色,在第二个操作中我们检查当前用户的当前角色,因为每个用户有多个角色。

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 }

和stub当前用户像这样,例如

allow_any_instance_of(AdminController).to receive(:current_user).and_return(user)

相关内容

  • 没有找到相关文章

最新更新