如何在ActionController TestCase中禁用渲染视图(Rails 3.0.9)

时间:2011-07-13 04:02:04

标签: ruby-on-rails-3 testcase actioncontroller

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

使用rr,我试过了     stub(@controller).render {“”}

但这破坏了assert_template断言。

谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

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

stub(@controller).layout { false }

答案 1 :(得分:1)

我想在Rails 6中做到这一点。使用mocha gem:

Enter 6 numbers between 1 to 49
Number: 10
Number: 20
Number: 30
Number: 40
Number: 15
Number: 25
The lottery numbers:
--------------
15 38 10 27 13 30 
--------------
Better luck next time! This was how many you got right: 3

对于其他版本的Rails,确定答案的最简单方法是在操作中添加ActionController::Metal.any_instance.stubs(:process).returns 并扫描回溯。找到看起来容易存根的东西,然后尝试。

答案 2 :(得分: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