1
我有一個應用程序助手,它決定了我的應用程序幫助程序頂部的導航欄的css類(選定或未選定)和鏈接地址。建議在rails的測試環境中禁用一些輔助方法嗎?
當我測試我的控制器時,我得到了一大堆關於navbar的錯誤(變量返回nil)。 由於導航欄與每個單獨的控制器無關,而且它出現在每一頁上,最簡單的事情似乎就是這樣。
在應用助手:
def navbar_method(category)
c = Category.find_by_name(category)
children = c.children.map {|child| child.name}
if category == "All"
if params[:id] == category || params[:category] == category
"on"
else
"off"
end
else
if params[:id] == category || children.include?(params[:id]) || params[:category] == category || children.include?(params[:category])
"on"
else
"off"
end
end
此處,我使用的方法,nav_link是我創建類似於NAV類其他輔助方法導航欄視圖的片段。這是一個水平下拉菜單:
在佈局/ application.html.erb:
<li id="Home" class="<%= nav_class("All") %>"><%= nav_link("All") %>
<ul>
</ul></li>
<li id="Writing" class="<%= nav_class("Writing") %>"><%= nav_link("Writing") %>
<ul>
<li class="<%= nav_class("Educational") %>"><%= nav_link("Educational") %>
因爲一切都在這個方法彈出爲零,我只是做了這一點:
def navbar_method(category)
unless Rails.env.test?
c = Category.find_by_name(category)
#see above
end
end
你這是什麼認爲?好?不好?
因爲我不OK一票,我想我會解釋一下。出於某種原因,儘管燈具我可能包括類別返回在測試零...我想我可以做廣泛的集成測試,以測試導航欄...
感謝您的意見。我在原始問題中做了一些編輯,以便您可以更多地瞭解我在做什麼。 – 2010-02-20 17:28:39