1
我有一個簡單的用戶登錄系統:如何存根CURRENT_USER方法Rspec的
module SessionsHelper
def logged_in?
current_user.present?
end
def current_user
@current_user ||= begin
if session[:current_user_id]
User.find(session[:current_user_id]) rescue nil
end
end
end
end
,我包括在ApplicationController中:
class ApplicationController < ActionController::Base
include SessionsHelper
helper SessionsHelper
我試圖測試橫幅控制器:
require 'spec_helper'
describe Admin::BannersController do
describe 'POST create' do
let(:user){ create(:user_admin) }
before do
controller.stub(:current_user){ user }
end
it "create action should render new template when model is invalid" do
Banner.any_instance.stubs(:valid?).returns(false)
post :create
response.should render_template(:new)
end
:user_admin是Factory Girl管理員用戶的正確設置。
但是測試仍然說:您無權訪問此頁面。 這是來自康康。
我沒有正確存根嗎?謝謝。
我把這個作爲規範,並把它稱爲一個塊之前,但它仍然無法正常工作 – lulalala 2012-07-03 08:14:12
可能是你需要設置實例變量@current_user – gayavat 2012-07-03 08:18:32
您應該使用rspec的序列,而不是隨機創建一個ID – fotanus 2013-08-13 23:28:36