2012-01-05 10 views
6

Railsのジェネレータを持つ宝石のテンプレートファイルをテストするいくつかの仕様を書いています。しかし、心の中でこの意志を保つrspecの記述テキストにアクセスする方法

it "has page title Admin" do 
    layout = self.class.description 
    # => "admin_layout.html.erb" 
end 

:あなたは、この情報を取得するためにself.class.descriptionを使用することができます

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 
+0

私は不思議です、あなたは何をしますか? – Gareth

+0

私はRailsにadminジェネレータをビルドしていますが、私はジェネレータが使用しているテンプレートの内容についていくつかの基本を試しています –

答えて

10

:私は下のRSpecのスペックに「admin_layout.html.erb」にアクセスしてみたいです最初の親の説明だけを出してください。したがって、ブロックdescribeにコンテキストがある場合、コンテキスト内の例ではdescribeブロック名の代わりにself.classのコンテキスト名が与えられます。その場合、メタデータを使用することができます:

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 
+3

'example.metadata [:full_description]'も役に立ちます – zetetic

+6

In RSpec 3、 'RSpec.current_example.metadata [...]'を使います。 [この問題](https://github.com/rspec/rspec-rails/issues/1123)を参照してください。 – fiedl

関連する問題