2010-11-10 13 views
1

Je suis nouveau sur Rails et Rspec. Mon fichier Rspec ne prend pas une (variable en instance) propriété du contrôleurTest de contrôleur avec Rspec dans les rails

assigns[:portal_news].should be_new_record 

Il donne toujours l'erreur:

You have a nil object when you didn't expect it! 
You might have expected an instance of ActiveRecord::Base. 
The error occurred while evaluating nil.new_record? 

Quelqu'un peut-il trouver la solution à ce problème?

Répondre

0

Votre méthode du contrôleur devrait être la création d'une nouvelle instance de votre modèle et l'assigner à @ portal_news`, peut-être quelque chose comme ceci:

@portal_news = MyModel.new 

Nous aurons besoin de voir le contenu de la méthode du contrôleur concerné, et de la spécification défaillante, pour pouvoir vous aider à comprendre cela.

+0

Dans le code du contrôleur: @ portal_news = PortalNews.new est mentionné .mais portal_news variables n'a pas pu accéder au fichier portal_news_controller_spec. Veuillez trouver la solution – Arun

+1

Il existe plusieurs possibilités. Avez-vous des 'before_filter's qui pourraient empêcher l'atteinte de l'instruction d'assignation? Avez-vous la même erreur en essayant d'accéder à la page dans votre navigateur? – zetetic

+0

merci pour la réponse. Dans le contrôleur j'ai déjà commenté tous les filtres.Mais après cela, il ne fonctionne toujours pas.J'ai installé rspec (2.1.0) et rspec-rails (2.1.0) sur les rails 2.3.5 – Arun