【问题标题】:testing the presence of form elements via rspec on ruby on rails在 ruby​​ on rails 中通过 rspec 测试表单元素的存在
【发布时间】:2011-05-19 23:23:48
【问题描述】:

大家好, 我无法在我的 ruby​​ on rails 视图上测试表单元素的存在。我正在使用 rspec 和 have_selector 进行测试。

这是我的测试代码:

it "should always have like button for root entity" do
  get :index
  @entities[0..3].each do |entity|
    response.should have_selector("form", 
      :method => "post", :action => "like/#{entity[:id]}") do |form|
        form.should have_selector("input", :value => "Like")
    end
  end
end

这是我对特定实体的视图输出:

    <th>
      <form method="post" action="/like/1"  class="button_to">
        <div>
          <input type="submit" value="Like" /><input name="authenticity_token" type="hidden" value="WEJPdFzphPFz+ld6BO8c/sMlhdfm+2Trp+3n0J8H5Cs=" />
        </div>
      </form>
    </th>

这是我的 rspec 错误:

1) EntityController GET '索引' 实体存在于未登录用户 应该总是有喜欢的按钮 根实体 失败/错误:form.should have_selector("input", :value => “像”) 预计以下输出将包含 标签。

如果我注释掉 "form.should have_selector("input", :value => "Like")" 那么测试代码是:

it "should always have like button for root entity" do
  get :index
  @entities[0..3].each do |entity|
    response.should have_selector("form", 
      :method => "post", :action => "like/#{entity[:id]}") do |form|
        #form.should have_selector("input", :value => "Like")
    end
  end
end

我的 rspec 错误是:

1) EntityController GET '索引' 实体存在于未登录用户 应该总是有喜欢的按钮 根实体 失败/错误:response.should have_selector("form", 预期以下输出包含

标签:

(只有相关部分是c/ped)

在表单元素方面,我似乎在使用 have_selector 时遇到了很多麻烦。有更好的选择还是我遗漏了一些明显的东西?

谢谢!

【问题讨论】:

  • 伙计们,谁能帮忙解决这个问题?似乎仍然无法解决它。

标签: ruby-on-rails-3 forms testing rspec


【解决方案1】:

您的表单的操作是

action="/like/1"

但你正在寻找

action="like/1"

即你少了一个斜线。

【讨论】:

  • 换句话说,您的测试非常脆弱,并且可能会因 URL 路径等最微小的变化而损坏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多