2013-02-24 2 views
1

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

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

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

+0

Является ли мой ответ полезным для вас? Если да, можете ли вы его продвинуть? В противном случае я бы предпочел удалить его. Благодаря! – joelparkerhenderson

+0

Вы хотите поделиться своими файлами _spec.rb, которые не удались? – swapab

ответ

0

Как только у меня возникла ошибка. Поэтому вы не сообщаете более подробную информацию с нами в то время, когда я расскажу вам свою историю, и, надеюсь, вы сможете быстрее найти свою ошибку.

В моем приложении 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, пожалуйста, простите мне недостаток более глубоких знаний.