2011-03-28 72 views
3

我有一個Rails 3部分列出所有類別作爲導航菜單 - 它是在大多數,但不是我的所有模板頁面...讓我們說75%左右。我試圖現在測試部分(在RSpec中),我剛剛意識到一些事情:Rails/Rspec視圖:正確的方式來測試部分

目前,我在實際視圖中調用Categories.all。困難在於,因爲觸及數據庫,視圖規範中我的模擬/存根被忽略,因此測試失敗。

我猜測的替代方法是在應用程序控制器中分配變量,然後將其作爲局部變量傳遞給局部變量。儘管如此,我的網頁中大約有25%不會使用這個變量,我想知道是否有更優雅的做事方式。

簡而言之,我希望視圖規格可以在不碰觸測試數據庫的情況下通過,但我不確定傳遞給我的局部變量的全局變量是否是最好的方法......而且我沒有聲明變量每個(僅限於&)需要它的那些控制器。

任何建議表示讚賞...

+0

我有這個問題了。看到spec文件的代碼片段以及可能的視圖會很有幫助。 – Ivan 2011-06-29 15:33:19

回答

2

爲什麼不爲所有類別創建一個輔助方法?

 
    # in categories helper 

def all_categories 
    @all_categories ||= Category.all 
end 

或者......

 
# application controller 

helper_method :all_categories 

def all_categories 
... 

然後,您可以存根出在你的規格這種方法,你將不會被觸及DB

相關問題