Обновленные rails и rspec теперь тест не проходит

#ruby-on-rails #rspec

#ruby-on-rails #rspec

Вопрос:

Я не могу понять, почему эти тесты не проходят внезапно:

 Failure/Error: @user = test_sign_in(Factory(:user))
     NoMethodError:
       undefined method `test_sign_in' for #<RSpec::Core::ExampleGroup::Nested_3::Nested_1::Nested_2:0x00000100a908e8>
 

Есть куча ошибок при test_sign_in, а затем еще один тест, который завершается с ошибкой:

      1) SessionsController POST 'create' with valid email and password should sign the user in
     Failure/Error: controller.should be_signed_in
     NoMethodError:
       undefined method `authenticate?' for nil:NilClass
     # ./spec/controllers/sessions_controller_spec.rb:51:in `block (4 levels) in <top (required)>'

  2) SessionsController DELETE 'destroy' should sign a user out
     Failure/Error: controller.should_not be_signed_in
     NoMethodError:
       undefined method `authenticate?' for nil:NilClass
     # ./spec/controllers/sessions_controller_spec.rb:66:in `block (3 levels) in <top (required)>'

  3) UsersController POST 'create' success should sign the user in
     Failure/Error: controller.should be_signed_in
     NoMethodError:
       undefined method `authenticate?' for nil:NilClass
     # ./spec/controllers/users_controller_spec.rb:171:in `block (4 levels) in <top (required)>'

  4) Users sign in/out success should sign a user in and out
     Failure/Error: controller.should be_signed_in
       expected signed_in? to return true, got false
     # ./spec/requests/users_spec.rb:68:in `block (4 levels) in <top (required)>'
 

Комментарии:

1. При обновлении rspec вы перезаписывали свой файл spec / spec_helper.rb? Был ли там определен test_sign_in?

2. Да, и я исправил эту часть. Я добавил все ошибки, которые я вижу, в исходный вопрос.

3. Где test_sign_in -то определено? Для какого объекта nil ./spec/controllers/sessions_controller_spec.rb:51 ?