你如何在Rails 3中使用HTML :: selector?

时间:2011-08-16 20:07:00

标签: html ruby-on-rails ruby-on-rails-3 testing dom

我正在测试表格。它看起来像:

<form accept-charset="UTF-8" action="/the_action" method="post">
  <select id="id" name="z[z_id]">
    <option value="7">Foo</option> 
    <option value="11">Bar</option> 
  </select>
</form>

如何将所有选项 放入数组(7,11)进行测试?这些值是模型的id,因此我想测试每个对象的某些属性。

我为HTML :: Selector阅读了api docs(http://api.rubyonrails.org/),但它没有帮助。

还使用了Rails指南中的assert_select(http://guides.rubyonrails.org/testing.html#testing-views),但没有弄清楚如何以不同于测试相等性的方式使用值。

您有推荐的介绍资源吗?

感谢。

编辑:以下是视图中的代码:

<%= form_tag( :action => :the_action) do %>
<%= select :model_name, :model_id, Model.where(:user_id => 1).collect{|m| [m.full_name, m.id]}, :selected => selected_value, :include_blank => false %>
<%= submit_tag "view model" %>
<% end %>

此功能没有控制器代码。

1 个答案:

答案 0 :(得分:0)

听起来好像您正在通过视图测试模型。有没有理由不在视图中检查选择器的存在,并在模型测试中测试模型的属性?

编辑:

所以我处理这个问题的方法是在模型上创建一个方法

def options_for_user(user_id)
   self.where(user_id => 1).collect{|m| [m.full_name, m.id]}
end

然后我只是从视图中调用此方法,并在单元测试中测试选项创建。也许这只是我 - 但它使测试这类事情变得非常容易......