2010-11-10 145 views
1

我是Rails和Rspec的新成員。 我Rspec的文件不採取控制的財產(如實例變量)使用Rspec進行控制器測試

assigns[:portal_news].should be_new_record 

它總是給人錯誤:

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? 

任何人都可以找到解決這個問題呢?

回答

0

你的控制器方法應該是在創建模型的新實例,並將其分配給@ portal_news`,也許是這樣的:

@portal_news = MyModel.new 

我們需要看到相關的控制器方法的內容,以及失敗的規範,能夠幫助你弄清楚這一點。

+0

在控制器代碼:@ portal_news = PortalNews.new被提及。但portal_news變量不能在portal_news_controller_spec文件訪問。請找到解決方案 – Arun 2010-11-12 06:42:14

+1

有幾種可能性。你有沒有'before_filter's可以阻止賦值語句被達到?嘗試訪問瀏覽器中的頁面時,是否也遇到同樣的錯誤? – zetetic 2010-11-12 06:55:15

+0

感謝您的回覆。在控制器我已經評論過所有filters.but在那之後,它仍然無法正常工作。我在rails上安裝了rspec(2.1.0)和rspec-rails(2.1.0)2.3.5 – Arun 2010-11-12 08:32:25