5

禁用 ActionController::TestCase 以实际呈现视图的正确方法是什么?或者,在测试中没有布局的情况下渲染视图的方法是什么?

使用 rr,我尝试了 stub(@controller).render { "" }

但这打破了 assert_template 断言。

谢谢!

4

3 回答 3

1

我遇到了同样的问题,即禁用布局,同时仍渲染主视图。使用 rspec 模拟,这对我有用:

@controller.stub(:layout).and_return(false)

我从未使用过 rr,但我想语法可能如下:

stub(@controller).layout { false }
于 2013-06-03T21:26:56.077 回答
1

我想在 Rails 6 中执行此操作。使用 mocha gem:

ActionController::Metal.any_instance.stubs(:process).returns

对于其他版本的 Rails,确定答案的最简单方法是添加puts caller到您的操作并扫描回溯。找一些看起来很容易存根的东西并尝试一下。

于 2020-01-17T19:38:50.440 回答
0

默认情况下禁用。

如果要启用,您可以:

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

于 2012-09-14T22:00:50.827 回答