禁用 ActionController::TestCase 以实际呈现视图的正确方法是什么?或者,在测试中没有布局的情况下渲染视图的方法是什么?
使用 rr,我尝试了 stub(@controller).render { "" }
但这打破了 assert_template 断言。
谢谢!
禁用 ActionController::TestCase 以实际呈现视图的正确方法是什么?或者,在测试中没有布局的情况下渲染视图的方法是什么?
使用 rr,我尝试了 stub(@controller).render { "" }
但这打破了 assert_template 断言。
谢谢!
我遇到了同样的问题,即禁用布局,同时仍渲染主视图。使用 rspec 模拟,这对我有用:
@controller.stub(:layout).and_return(false)
我从未使用过 rr,但我想语法可能如下:
stub(@controller).layout { false }
我想在 Rails 6 中执行此操作。使用 mocha gem:
ActionController::Metal.any_instance.stubs(:process).returns
对于其他版本的 Rails,确定答案的最简单方法是添加puts caller
到您的操作并扫描回溯。找一些看起来很容易存根的东西并尝试一下。
默认情况下禁用。
如果要启用,您可以:
1)在spec_helper中调用它:
config.render_views
2)将此语句放入您的控制器测试类中:
render_views
如果要禁用它,只需添加一个 false 参数,例如:
render_views false
参考:https ://www.relishapp.com/rspec/rspec-rails/v/2-5/docs/controller-specs/render-views