如何访问rspec中的描述文本

Jos*_*ews 7 ruby rspec

我正在编写一些规范来测试具有Rails生成器的gem中的模板文件.我想在下面的rspec规范中访问"admin_layout.html.erb":

require 'spec_helper'

describe "admin_layout.html.erb" do

  it "has page title Admin" do
     HERES WHERE I WOULD LOVE TO HAVE ACCESS TO "admin_layout.html.erb" AS A VARIABLE
  end

end
Run Code Online (Sandbox Code Playgroud)

Dyl*_*kow 14

您可以使用self.class.description获取此信息:

it "has page title Admin" do
  layout = self.class.description 
  # => "admin_layout.html.erb"
end
Run Code Online (Sandbox Code Playgroud)

但是,请记住,这只会显示第一个父母的描述.因此,如果您的describe块中有上下文,那么上下文中的示例将给出上下文名称self.class而不是describe块的名称.在这种情况下,您可以使用元数据:

describe "admin_layout.html.erb", :layout => "admin_layout.html.erb"
  context "foo" do
    it "has page title Admin" do
      layout = example.metadata[:layout]
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 在RSpec 3中,使用`RSpec.current_example.metadata [...]`.见[本期](https://github.com/rspec/rspec-rails/issues/1123). (7认同)
  • `example.metadata [:full_description]`也可能有用 (3认同)
  • 在 RSpec 3 中,要获取顶级描述(即“admin_layout.html.erb”),可以使用 `self.class.top_level_description`。 (2认同)