我正在测试功能,需要从ApplicationController调用一个方法,我该怎么做?

时间:2017-01-27 11:47:02

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

我正在测试功能,需要从ApplicationController调用方法,如何在测试中调用方法2 3.14

gta_data

规格/特征/ application_page.rb

def gtm_data(data_hash = nil)
  @gtm_data ||= {}
  if @dynamic_page
    gaPageUid = 'category-' + @dynamic_page.uid
  else
    gaPageUid = 'other'
  end

  @gtm_data = {
    gaLocale: @locale, gaLanguage: @lang,
    gaRegion: current_site.region, gaPageUid: gaPageUid
  }
  @gtm_data
end

1 个答案:

答案 0 :(得分:0)

如果要从应用程序控制器调用任何其他控制器规范的方法,并将您的方法声明为helper_method,则必须从控制器中看到它。因此,如果您的方法是私有的,则可以使用controller.method_namecontroller.send(:method_name)

但是如果你想在ApplicationController中测试你的方法并测试ApplicationController本身,你需要使用anonymous controller rspec方法。

和。如果我理解你正确,你想在你的功能规格中调用控制器方法。必须告诉你,不应该这样做。在您的功能规范中,您只需模拟用户在网页中的操作,并期望在您的网页中显示最终结果。这就像

  

用户点击按钮,然后重定向到“新建”页面   页面“标题