如何使用Rspec测试视图中textarea的内容?

时间:2011-08-16 06:48:31

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2

我正在用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的内容?

1 个答案:

答案 0 :(得分:8)

Textareas与输入元素不同,因为它们的'value'是它们的内容而不是它们的value属性,所以你应该匹配内容吗?试试这个:

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