我正在测试表格。它看起来像:
<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 %>
此功能没有控制器代码。
答案 0 :(得分:0)
听起来好像您正在通过视图测试模型。有没有理由不在视图中检查选择器的存在,并在模型测试中测试模型的属性?
编辑:
所以我处理这个问题的方法是在模型上创建一个方法
def options_for_user(user_id)
self.where(user_id => 1).collect{|m| [m.full_name, m.id]}
end
然后我只是从视图中调用此方法,并在单元测试中测试选项创建。也许这只是我 - 但它使测试这类事情变得非常容易......