2

I'm trying to write a test for a helper method that accepts a form helper object, is there a way to create a form object within the test?

/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

So in my test case how do I create the form object? I'm still on Rails 2.3.9.

Thanks in advance

4

2 に答える 2

0

理論的にrequire 'action_view/helpers/form_helper'は、ヘルパー仕様で(actionpackに存在する)メソッドform_forを使用可能にすることができます。

ただし、私はpjammerを使用しているので、helper_methodに配置しているロジックが本当にそこに属しているかどうかを確認する必要があります。helper_methodで何を達成しようとしているのかを教えていただければ、フォームオブジェクトを渡す必要のない代替手段を提供できる可能性があります。これは、おそらくより良いアプローチです。

于 2013-02-21T16:58:35.577 に答える
0

最初にパーシャルで使ってみて、それからヘルパーを使ってみてください。「モデル」タイプのものをいじっていない限り、パーシャルはフォームコードを再利用し、テストを容易にする優れた方法です。

ヘルパーは、ある意味で「ロジックを表示する」ためのものです。パーシャルはフォーム フィールドを表示するためのもので、繰り返されるものも含まれます。

パーシャルではできないヘルパーで何をしようとしているのかを確認するのに役立ちます。

于 2011-02-10T22:24:11.173 に答える