【问题标题】:how do I use Rspec to test the contents of a textarea in a view?如何使用 Rspec 测试视图中文本区域的内容?
【发布时间】:2011-08-16 06:48:30
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,帽子工作得很好!这正是我想要的。
    • 我认为:content 现在应该是:text
    • 或者内容可以是 :exact_text 如果你检查完整的值
    猜你喜欢
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多