如何确定Rails控制器的默认操作?

| 我正在进行一项功能测试,该功能需要断言某些控制器集中存在某个XHTML标签。我基本上是这样做的:
class ApplicationControllerTest < ActionController::TestCase
  def setup
    @controller = ApplicationController.new
  end
  # [...]
  def test_foo_bar_and_baz_include_stylesheet
    [FooController, BarController, BazController].each do |controller|
      @controller = controller.new
      get :show
      assert_select \'head > link[rel=\"stylesheet\"]\'
    end
  end
end
问题在于,并非所有控制器都具有“ 1”动作。我需要做的是询问控制器或控制器的默认操作的路由配置,然后调用“ 2”。 更新:Joseph Silvashy是正确的:我最终将控制器
get
分离到了单独的测试用例中。解决“默认”路由问题已经很糟糕了,直到我发现我的某些路由附加了条件,并且我必须解析它们才能进行正确的
get
调用。最后,Rails功能测试不能很好地处理在同一测试用例中多次调用deal2 don的情况,特别是当这些调用击中多个控制器时。 :( 我认为这里的课程是我们都心生的一课,但有时很难接受:如果代码看起来很繁琐,那么您可能做错了。 ;)     
已邀请:
控制器没有“默认”视图或动作,此外,动作可以命名为任意名称,它们不必是标准的
index
show
new
等。 对于您要测试的每个控制器,我可能不得不采取“ 9”适当的措施。即使现在每个测试都具有相同的要求,但每个测试都有可能会有所不同,尽管我认为为每个操作编写一个测试是有意义的。     
尝试使用response_to函数:http://www.ruby-doc.org/core/classes/Object.html#M001005 检查方法是否退出。     

要回复问题请先登录注册