Тесты контроллера терпят неудачу при совместном запуске, проходят успешно при индивидуальном запуске. Как это может быть?

У меня есть несколько тестов, которые требуют, чтобы пользователь вошел в систему. Когда я запускаю тест контроллера сам по себе, он проходит, и все становится зеленым. Если я запускаю rspec spec/controllers, некоторые из моих тестов завершаются ошибкой, например:

Failure/Error: get :my_modal, :format => :js
 NoMethodError:
   undefined method `authenticate!' for nil:NilClass

Любые советы, как это можно исправить?


person Geo    schedule 24.02.2013    source источник
comment
Возможно, мой ответ вам полезен? Если да, то можете ли вы проголосовать за это? В противном случае я бы предпочел удалить его. Спасибо!   -  person joelparkerhenderson    schedule 26.02.2013
comment
Вы хотели бы поделиться своими файлами _spec.rb, которые терпят неудачу?   -  person swapab    schedule 22.12.2013


Ответы (1)


Однажды у меня была такая ошибка. Следовательно, вы не делитесь с нами более подробной информацией в то время, когда я расскажу вам свою историю, и, надеюсь, впоследствии вам будет легче найти свою ошибку.

В моем приложении могли войти 2 класса. «Пользователь» и «Тема». Я попытался выполнить аутентификацию, чтобы пользователи могли получить доступ только к сайтам, связанным с пользователями, а темы могли получить доступ только к частям приложения, связанным с темами.

Одна из первых ошибок, которые я получил, была ваша ошибка. Но я исправил это и попытаюсь объяснить вам, как я это сделал. Если пользователь вошел в систему, мое приложение не знало методов аутентификации, связанных с темами. И наоборот, если тема была подписана в моем приложении, я не знал методов аутентификации, связанных с пользователем (я просил, чтобы User.user_id или Topic.be_topic? были правдой)

Подсказка для решения этой проблемы заключалась в следующем: я создал метод под названием «user_signed_in» и выполнил аутентификацию по методу IF.

IF user_signed_in
  user.user_id > 0
ELSE
  topic.be_topic == true
END

надеюсь, что это поможет вам. Я новичок в Rails, пожалуйста, простите мне отсутствие глубоких знаний.

person swbergmann    schedule 24.02.2013