Испытание контроллера RSPEC с разработкой аутентификации

У меня проблемы с контроллером тестирования 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, и я не могу понять это.

Помогите мне ..

17
задан Gagan 17 September 2011 в 03:46
поделиться