我想存根渲染,我想测试是否选择了某个布局
额外收获:在测试环境中,该布局文件将不存在
有没有一种聪明的方法来检测控制器是否选择了没有渲染的布局,并且没有触发 ActionView::MissingTemplate 错误?
(这是在 Rails 2.3 应用程序上,但请随意聊天 rails 3)
我想存根渲染,我想测试是否选择了某个布局
额外收获:在测试环境中,该布局文件将不存在
有没有一种聪明的方法来检测控制器是否选择了没有渲染的布局,并且没有触发 ActionView::MissingTemplate 错误?
(这是在 Rails 2.3 应用程序上,但请随意聊天 rails 3)
最简单的方法是将您的布局选择逻辑放在帮助程序中并直接测试该帮助程序。无需删除任何内容或伪造渲染。
class MyController < ActionController::Base
layout :choose_layout
private
def choose_layout
if some_thing?
'this_layout'
else
'other_layout'
end
end
end
class MyControllerTest < ActionController::TestCase
test "choose_layout" do
@controller.stubs(:some_thing? => true)
assert_equal 'other_layout', @controller.send(:choose_layout)
end
end