2012-01-05 9 views
6

Estoy escribiendo algunas especificaciones que prueban los archivos de plantilla en una gema que tiene generadores para Rails. Me encantaría tener acceso a "admin_layout.html.erb" en la especificación rspec a continuación:Cómo acceder al texto de descripción en rspec

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

Tengo curiosidad, ¿qué le permitiría hacer? – Gareth

+0

Estoy construyendo un generador de administrador en Rails, y estoy tratando de probar algunos conceptos básicos sobre el contenido de las plantillas que el generador que estoy escribiendo usa –

Respuesta

10

Puede utilizar self.class.description para obtener esta información:

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

Sin embargo, tenga en cuenta esta voluntad solo publique la descripción del primer padre. Entonces, si tiene contextos en su bloque describe, los ejemplos dentro de los contextos darán el nombre de contexto para self.class en lugar del nombre del bloque describe. En ese caso, podría usar los metadatos:

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]' también puede ser útil – zetetic

+6

In RSpec 3, use 'RSpec.current_example.metadata [...]'. Ver [este número] (https://github.com/rspec/rspec-rails/issues/1123). – fiedl

Cuestiones relacionadas