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