Rspec 3视图规范自定义帮助程序的未定义方法

时间:2016-10-05 07:09:54

标签: ruby-on-rails ruby rspec rspec-rails

我在帮助程序模块中有自定义表单构建器方法。

module MediaHelper
  class CustomFormBuilder < ActionView::Helpers::FormBuilder
    ... 
  end

 def custom_form_for(data, *args, &proc)
  options = args.extract_options!
  form_for(data, *(args << options.merge(builder:
  MediaHelper::CustomFormBuilder)), &proc)
 end
end

这适用于<= custom_form_for(media) do |f| %>

的视图

但是它打破了RSpec 3中的视图规范,我收到错误消息

ActionView::Template::Error: undefined method custom_form_for' for #<#<Class:0x007fea32454ce0>:0x007fea34064f98>

on render

是否可以包含帮助程序?

1 个答案:

答案 0 :(得分:3)

自定义帮助程序可以包含在helper(<module>)

的视图规范中

在我的案例中的视图规范中:

RSpec.describe 'media_items/new', type: :view do
    helper(MediaHelper)
end

在规范中调用render时,它会使用<= custom_form_for(media) do |f| %>正确呈现视图