2012-02-22 3 views
0

Ruby on Rails 3 튜토리얼 섹션 10.3.1 "사용자 색인"에 있습니다. 통과를 거부하는 테스트가 하나 있는데 오류를 광범위하게 조사하여 통과시키지 못하는 것 같습니다. 여기 UsersController 로그인 한 사용자의 'index'는 각 사용자에 대한 요소가 있어야합니다.

오류입니다 : 1) 각 사용자 장애/오류에 대한 요소가 있어야 로그인 한 사용자를위한 UsersController GET '인덱스'response.should have_selector ("리": 내용 => user.name를) NoMethodError : 정의 방법 I가되도록 시험을 시도 name' for nil:NilClass # ./spec/controllers/users_controller_spec.rb:39:in 블록 (

'에 each' # ./spec/controllers/users_controller_spec.rb:38:in 블록 ./spec/controllers/users_controller_spec.rb:38:in # (4 단계)'의 5 단계) 사용자가 배열 대신 객체를 반환합니다 ... 그렇습니다. 내 sign_in 및 test_sign_in 메소드를 점검했습니다. 계속 전진 할 수는 있지만 테스트가 실패하면 나를 미치게됩니다.

여기 내 users_controller_spec.rb 코드 : 이

 before(:each) do 
      @user = test_sign_in(Factory(:user)) 
      second = Factory(:user, :name => "Bob", :email => "[email protected]") 
      third = Factory(:user, :name => "Ben", :email => "[email protected]") 

      @users = [@users, second, third] 
     end 

     it "should be successful" do 
      get :index 
      response.should be_success 
     end 

     it "should have the right title" do 
      get :index 
      response.should have_selector("title", :content => "All users") 
     end 

     it "should have an element for each user" do 
      get :index 
      @users.each do |user| 
       response.should have_selector("li", :content => user.name) 
      end 
     end 
    end 
end 

이 도와주세요 어떻게 "로그인 한 사용자를위한"기술!

+0

저는 실제로이 문제를 해결했습니다. @ 사용자 용 내 코드 \t = [@user, second, third] @user를 @ 사용자와 함께 철자가 잘못되었습니다. –

+0

답변으로 작성하고 동의해야합니다. 이 방법은 질문이 "대답"으로 표시 될 것입니다. –

답변

1

나는 이것을 실제로 풀었다. @ users = [@user, second, third]에 대한 코드에서 @user @ @ 사용자와 철자가 잘못되었습니다.

관련 문제