2011-08-16 32 views
6

我正在用RSpec編寫一個視圖規範,我不斷收到這個問題。測試會發現textarea,但是當我嘗試測試內容時,它會失敗。有什麼建議麼?如何使用Rspec來測試視圖中textarea的內容?

這是我遇到麻煩的測試。

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 

我可能會做這一切錯誤的,因爲我在TDD很新,但我看到這個測試通過了,當我刪除從中真正讓我困惑的textarea的價值。那麼有沒有辦法測試textarea的內容?

回答

8

Textareas與輸入元素不同,因爲它們的'value'是它們的內容而不是它們的value屬性,所以你應該在內容上匹配嗎?試試這個:

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

謝謝,帽子工作完美!這正是我所期待的。 –

+3

我認爲':content'現在應該是':text' – aceofspades