지금도 rspec을 알아 내려고 노력 중이며 지금은 authlogic을 사용하여 내 사용자와 세션을 처리하고 있습니다. 나는 def_current_user 메소드를 applciation 컨트롤러에 추가하는 것과 같은 일반적인 authlogic 작업을 수행했고, 도우미 메서드로 사용했지만 어떻게하면 rspec 컨트롤러 파일에 액세스 할 수 있습니까? 내가 RSpec에 실행할 때헬퍼 메소드/변수가 rspec에 존재하는지 확인하는 방법은 무엇입니까?
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
은 그냥 저에게 말한다 : 여기
내 user_sessions_controller_spec.rb입니다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>
그렇게는 RSpec에 문맥에서 추측 메신저 ...하지만 난 어떻게해야 user-sessions_controller에 있어야한다는 것을 알고 계십니까? 그리고 나는 그것을 정확하게 테스트하고 있습니까? controller.stub!(:current_user).and_return(whatever)
블록 before :each
에,하지만 당신은 그것을 스텁이라면 당신은 항상 whatever
을 얻을 것이다 : 당신이 CURRENT_USER 방법 사용을 스텁 할 경우 RSpec에있는 CURRENT_USER의