have_tag与have_selector

时间:2011-06-15 18:26:42

标签: rspec selector

我已成功使用带有RSpec(版本2.0.1)的have_selector。我最近发现有关与RSpec 1.3.2相关联的have_tag ... with_tag ...的文档并希望使用它,但是RSpec给了我错误:

undefined method `has_tag?' for #<ActionController::TestResponse:0x105584e80>

在以下几行:

      response.should have_tag("div.breadcrumbs select") do
        with_tag(:option, :value => @brands.name)
        with_tag(:option, :value => @marketsize.name)
      end

我尝试使用相同的语法替换“have_selector”和“with_selector for”has_tag“和”with_tag“,在这种情况下我收到错误消息

undefined method `with_selector' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1::Nested_1:0x105379de8>

我也尝试单独留下“with_tag”而代替“have_selector”但没有成功。

2 个答案:

答案 0 :(得分:10)

我花了一些时间在文档中找到它,但正确的答案是

  response.should have_selector("div.breadcrumbs select") do |content|
    content.should have_selector(:option, :value => @brands.name)
    content.should have_selector(:option, :value => @marketsize.name)
  end

答案 1 :(得分:5)

  

RSpec-2不包含have_tag。请改用webrat的has_selector匹配器。

http://groups.google.com/group/rspec/browse_thread/thread/1c254524d6859ba9