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
이 도와주세요 어떻게 "로그인 한 사용자를위한"기술!
저는 실제로이 문제를 해결했습니다. @ 사용자 용 내 코드 \t = [@user, second, third] @user를 @ 사용자와 함께 철자가 잘못되었습니다. –
답변으로 작성하고 동의해야합니다. 이 방법은 질문이 "대답"으로 표시 될 것입니다. –