如何确定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的情况,特别是当这些调用击中多个控制器时。 :(
我认为这里的课程是我们都心生的一课,但有时很难接受:如果代码看起来很繁琐,那么您可能做错了。 ;)
没有找到相关结果
已邀请:
2 个回复
嗜蒂谷尘旱
,
,
等。 对于您要测试的每个控制器,我可能不得不采取“ 9”适当的措施。即使现在每个测试都具有相同的要求,但每个测试都有可能会有所不同,尽管我认为为每个操作编写一个测试是有意义的。
浅镁