У меня проблемы с контроллером тестирования RSPEC.
У меня есть следующие настройки
Я включил
config.include Devise::TestHelpers, :type => :controller
в моем SPEC_HELPER.RB
в моих merchants_controller_spec.rb
describe MerchantsController do
before :each do
@user = Factory(:user)
@merchant = Factory(:merchant, :user_id => @user.id,:is_approved => false, :is_blacklisted => false)
controller.stub!(:current_user).and_return(@user)
end
describe "GET index" do
it "assigns all merchants as @merchants" do
merchant = Factory(:merchant,:is_approved => true, :is_blacklisted => false)
get :index
assigns(:merchants).should eq([merchant])
end
end
end
My merchants_controller.rb
class MerchantsController < ApplicationController
before_filter :authenticate_user!
def index
@merchants = Merchant.approved
debugger
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @merchants }
end
end
end
У меня есть сфера, одобренный в модели продавца
scope :approved, where(:is_approved => true, :is_blacklisted => false)
Сейчас моя проблема, даже если я окрашивал receake_user и вернул @user как reeure_user, мой SPEC-индекс Merchants_Controller не удается. Но если я прокомментирую аутентиковать_user! Затем спецификация проходит,
без аутентификации_user! Отладчик индексных действий пойман, но с помощью Authenticle_USER! Отладчик не пойман.
Я думаю, что есть проблема в подразделении Current_user, и я не могу понять это.
Помогите мне ..