Rspec 2:默认情况下,如何为所有控制器规格渲染render_views

时间:2010-12-09 18:04:57

标签: ruby-on-rails controller rspec2

我总是在我的所有控制器规范中编写render_views

require 'spec_helper'

describe AwesomeController do
  render_views
end

有没有办法总是在所有控制器规格上渲染视图?

3 个答案:

答案 0 :(得分:13)

documented这样做的方式,截至今天是

  

规格/支持/ render_views.rb

RSpec.configure do |config|
  config.render_views
end

答案 1 :(得分:4)

将此添加到spec/spec_helper.rb

config.include(Module.new {
  def self.included(base)
    base.render_views
  end
}, :type => :controller)

它创建一个匿名模块,在其包含的类上运行render_views,并且它包含在描述控制器的任何describe-block中。

答案 2 :(得分:2)

将其添加到您的spec_helper.rb配置。

您可以将render_views添加到rspec配置中,如下所示:

spec_helper.rb

RSpec.configure do |config|

  # Renders views in controllers.
  config.render_views

  # Other config setup.

end

关闭render_views

您可以使用render_views false基于每个描述/上下文关闭视图呈现,如下所示:

context "without view rendering even with global render_views on" do
  render_views false

  # specs without view rendering.
end