Я нахожусь в разделе 10.3.1 «Индекс пользователя» учебника по Ruby on Rails 3. У меня есть один тест, который отказывается пройти, и я тщательно исследовал ошибку и, похоже, не смог ее пройти.
Вот ошибка:
1) UsersController GET 'index' для зарегистрированных пользователей должен иметь элемент для каждого пользователя
Ошибка / Ошибка: response.should have_selector ("li",: content => user.name)
NoMethodError:
неопределенный метод name' for nil:NilClass
# ./spec/controllers/users_controller_spec.rb:39:in
блок (5 уровней) в '
# ./spec/controllers/users_controller_spec.rb:38:in each'
# ./spec/controllers/users_controller_spec.rb:38:in
блок (4 уровня) в '
Я попытался проверить, чтобы пользователь возвращал объект вместо массива ... это так. Я проверил свои методы sign_in и test_sign_in. Я, вероятно, могу двигаться дальше, но неудачные тесты сводят меня с ума.
Вот мой код users_controller_spec.rb:
опишите "для зарегистрированных пользователей" do
before(:each) do
@user = test_sign_in(Factory(:user))
second = Factory(:user, :name => "Bob", :email => "another@example.com")
third = Factory(:user, :name => "Ben", :email => "another@example.net")
@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
Пожалуйста, помогите !!!