私は単純なユーザーログインシステムを持っています:
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 管理者ユーザーです。
ただし、テストにはまだ次のように表示されます。このページにアクセスする権限がありません。 カンカンからです。
私はそれを適切にスタブしませんでしたか?ありがとう。