我正在尝试为接受表单助手对象的辅助方法编写测试,有没有办法在测试中创建表单对象?
/app/views/blahs/edit.html.erb
<% form_for :blahs do |blah| %>
<%= my_helper_method(blah) %>
<% end %>
/app/helpers/blahs_helper.rb
def my_helper_method(blah) # # blah is ActionView::Helpers::FormBuilder # do something with the form object here # end
所以在我的测试用例中如何创建表单对象?我还在使用Rails 2.3.9。
提前致谢
答案 0 :(得分:0)
首先尝试使用它,然后用帮助器获得幻想?除非你正在做一些捏造的“模型”类型的东西,否则部分是重用表单代码并更容易测试的好方法。
帮助器在某种程度上用于“查看逻辑”。 partials用于显示表单字段,甚至是重复表单字段。
这可能有助于看到你在辅助工具中想要做的事情,而你却不能参与其中。
答案 1 :(得分:0)
理论上,您可以在帮助器规范中require 'action_view/helpers/form_helper'
(它位于actionpack中),这将使方法form_for可用。
但是我和pjammer在一起,你应该质疑你在helper_method中的逻辑是否真的属于那里。如果您告诉我们您在helper_method中要完成的任务,我们可能会为您提供不需要传递表单对象的替代方法,这可能是一种更好的方法。