2011-08-16 4 views
6

Estoy escribiendo una especificación de vista con RSpec y sigo teniendo este problema. La prueba encontrará textarea, pero falla cuando intento probar los contenidos. ¿Alguna sugerencia?¿cómo uso Rspec para probar el contenido de un área de texto en una vista?

Esta es la prueba con la que estoy teniendo problemas.

describe "reminders/edit.html.erb" do 
    before(:each) do 
    @reminder = Factory(:reminder) 
    end 

    it "should render the form to edit a reminder" do 
     assign :reminder, @reminder 
     render 
     rendered.should have_selector("form", :method => "post", :action => reminder_path(@reminder)) do |f| 
     f.should have_selector("input", :type => "text", :name => "reminder[title]", :value => "The Title" ) 
     f.should have_selector("textarea", :name => "reminder[content]", :value => 'The big content') 
     f.should have_selector("input", :type => "submit") 
     end 

end 

que podría estar haciendo mal todo esto ya que soy bastante nuevo en TDD, pero estoy viendo que esta prueba pasa cuando quito el valor del área de texto que realmente me confunde. Entonces, ¿hay alguna forma de probar un área de texto para sus contenidos?

Respuesta

8

Textareas son diferentes a los elementos de entrada porque su 'valor' es su contenido en lugar de su atributo de valor, por lo que debe coincidir con el contenido en su lugar? Pruebe esto:

f.should have_selector("textarea", :name => "reminder[content]", :content => 'The big content') 
+0

Gracias, ¡funcionó perfectamente! Y es exactamente lo que estaba buscando. –

+3

Creo '' content' ahora debería ser ': text' – aceofspades

Cuestiones relacionadas