Вспомогательный метод Rails Test, принимающий объект ActionView :: Helpers :: FormBuilder - PullRequest
2 голосов
/ 02 февраля 2011

Я пытаюсь написать тест для вспомогательного метода, который принимает вспомогательный объект формы, есть ли способ создать объект формы внутри теста?

/ 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 голосов
/ 21 февраля 2013

Теоретически вы можете require 'action_view/helpers/form_helper' (который находится в actionpack) в вашей спецификации помощника, что сделает метод form_for доступным.

Однако я с pjammer должен спросить вас, действительно ли логика, которую вы вставляете в ваш helper_method, действительно существует.Если вы сообщите нам, что вы пытаетесь выполнить в helper_method, мы можем предложить вам альтернативы, которые не требуют прохождения объекта формы, что, вероятно, является лучшим подходом.

0 голосов
/ 11 февраля 2011

попробуйте сначала использовать его с частичным, а потом, может быть, помириться с помощником?Если вы не делаете какой-то обманчивый материал типа «Модель», частичное является отличным способом повторного использования кода формы и его проще тестировать.

помощники для «Просмотр логики» в некотором смысле.частичные для отображения полей формы, даже те, которые повторяются.

Это может помочь увидеть, что вы пытаетесь сделать в помощнике, который вы не можете в частичном.

...