2011-02-02 2 views
1

헬퍼 메소드를 지원하는 도우미 메소드에 대한 테스트를 작성하려고합니다. 테스트 도중 폼 객체를 생성 할 수있는 방법이 있습니까? 내가 양식 객체를 생성 어떻게레일즈 헬퍼 메소드가 ActionView :: Helpers :: 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 

? 나는 여전히 레일즈 2.3.9를 사용하고있다. 사전에

감사

답변

0

이 부분 첫번째로를 사용하여, 어쩌면 도우미 공상 해보? "모델"유형의 항목을 잘못 작성하지 않는 한, 부분 코드는 양식 코드를 재사용하고 테스트하기 쉬운 좋은 방법입니다.

도우미는 "논리보기"방식입니다. 부분은 양식 필드를 표시하기위한 것이며 심지어 반복되는 양식 필드도 표시합니다.

부분적으로 할 수없는 도우미에서 수행하려는 작업을 보는 데 도움이 될 수 있습니다.

0

이론적으로 당신은 도우 퍼 스펙에서 require 'action_view/helpers/form_helper' (액션 팩에 존재)을 사용할 수 있습니다. 그러면 form_for 메소드를 사용할 수 있습니다.

그러나 나는 당신이 helper_method에 넣고있는 논리가 실제로 거기에 속하는지 여부에 대해 질문해야한다는 pjammer와 함께 있습니다. helper_method에서 수행하고자하는 것을 알려 주면 form 객체를 전달할 필요가없는 대안을 제공 할 수 있습니다. 이는 아마도 더 나은 접근 방법 일 것입니다.