Question

Im essayant toujours de trouver rspec et maintenant je me sers authlogic pour gérer mes utilisateurs et des sessions. Je l'ai fait les choses authlogic habituelles comme l'ajout de la méthode current_user def au contrôleur applciation, et comme une méthode d'assistance, mais comment puis-je accéder dans mon fichier contrôleur rspec?

Voici mon user_sessions_controller_spec.rb:

require 'spec_helper'
require 'authlogic'

describe UserSessionsController do

  context "user is already logged in" do

    before(:each) do
      include Authlogic::TestCase
      activate_authlogic
      UserSession.create Factory.build(:user)
    end

    it "should redirect the user to the home page" do
      get 'new'
      response.should redirect_to(home_path)
    end

  end

  describe "#create" do
    context "when the user is not logged in" do    
      before(:each) do
        current_user = nil
      end

      it "correct authorization should create a new session" do
        post 'create', {:login => "afactoryuser", :password => "apass", :password_confirmation => "apass"}
        current_user.should_not be_nil
      end
    end
  end

end

quand je lance rspec il me dit simplement:

correct authorization should create a new session
undefined local variable or method `current_user' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2::Nested_1:0x000001017d3410>

im devinant il est dans le contexte rspec ... mais comment puis-je savoir qu'il devrait être à l'utilisateur sessions_controller? Et que je teste même correctement?

Était-ce utile?

La solution

Insted de current_user dans votre RSpec, essayez controller.current_user

Si vous voulez bouchonner méthode current_user utilisation: controller.stub!(:current_user).and_return(whatever) dans before :each  bloc, mais vous obtiendrez toujours whatever si vous cognez il.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top