2012-02-22 19 views
0

我在第10.3.1节“Ruby on Rails 3教程”的“用户索引”。我有一个拒绝通过的测试,我已经广泛地研究了这个错误,并且似乎无法让它通过。UsersController登录用户GET'索引'应该为每个用户都有一个元素

以下是错误: 1)UsersController GET为登录用户应具有为每个用户 故障/错误的元素“索引”:response.should have_selector(“里”,:含量=> user.name ) NoMethodError: 未定义的方法name' for nil:NilClass # ./spec/controllers/users_controller_spec.rb:39:in块( '在 #./spec/controllers/users_controller_spec.rb:38:in each' # ./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 with @ users拼错了@user。 – 2012-02-22 21:47:19

+0

你应该写它作为答案,并接受它。这样,问题将被标记为“已回答”,就像它应该那样。 – 2012-02-23 15:28:50

回答

1

我其实刚刚解决了这个问题。在我的@ users = [@user,second,third]代码中,我用@用户拼错@user

相关问题