Rails测试辅助方法接受ActionView :: Helpers :: FormBuilder对象

时间:2011-02-02 16:05:13

标签: ruby-on-rails testing helper formbuilder

我正在尝试为接受表单助手对象的辅助方法编写测试,有没有办法在测试中创建表单对象?

/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。

提前致谢

2 个答案:

答案 0 :(得分:0)

首先尝试使用它,然后用帮助器获得幻想?除非你正在做一些捏造的“模型”类型的东西,否则部分是重用表单代码并更容易测试的好方法。

帮助器在某种程度上用于“查看逻辑”。 partials用于显示表单字段,甚至是重复表单字段。

这可能有助于看到你在辅助工具中想要做的事情,而你却不能参与其中。

答案 1 :(得分:0)

理论上,您可以在帮助器规范中require 'action_view/helpers/form_helper'(它位于actionpack中),这将使方法form_for可用。

但是我和pjammer在一起,你应该质疑你在helper_method中的逻辑是否真的属于那里。如果您告诉我们您在helper_method中要完成的任务,我们可能会为您提供不需要传递表单对象的替代方法,这可能是一种更好的方法。