我有一个简单的用户登录系统:
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管理员用户。
但是测试仍然说:您无权访问此页面。 这是来自康康。
我没有正确存根吗?感谢。
答案 0 :(得分:2)
def fake_user
user = FactoryGirl.build(:user, :id => 100000 + rand(100000))
stub(controller).current_user { user }
user
end