test du contrôleur rspec avec authentification
Je vais avoir des problème avec rspec de contrôleur de test le dispositif d'authentification.
J'ai une installation suivants
J'ai inclus
config.include Devise::TestHelpers, :type => :controller
dans mon spec_helper.rb.rb
Dans mon 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
Mon 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
J'ai une portée approuvée par les commerçants, modèle
scope :approved, where(:is_approved => true, :is_blacklisted => false)
Maintenant mon problème est que même si j'ai écrasé current_user et retourné @user comme current_user, Mon merchants_controller indice spec est un échec. Mais si j'en commentaire authenticate_user! puis le spec passe,
sans authenticate_user! le débogueur de l'action index est pris, mais avec authenticate_user! le débogueur n'est pas pris.
Je pense qu'il y a problème dans le substrat current_user et je ne suis pas en mesure de le comprendre.
M'aider..
source d'informationauteur Gagan
Vous devez vous connecter pour publier un commentaire.
Avez-vous lu à travers les docs sur github?:
Une autre alternative