在控制器测试中包括辅助方法

时间:2012-11-08 11:13:56

标签: ruby-on-rails ruby-on-rails-3

如何在controller_spec代码中包含一些助手? 我在dates_ads_helper中有一个名为“a_title(ads)”的方法,并返回self。 我如何在controller_spec测试中使用此方法?

当我尝试在我的controller_spec文件中调用它时,我收到此错误

NoMethodError:
       undefined method `a_title' 

1 个答案:

答案 0 :(得分:1)

使用模板引擎中已包含的辅助方法:

Rails 2:使用@template变量。 Rails 3:具有漂亮的控制器方法view_context 使用a_title

# rails 3 sample
def controller_action
  @price = view_context.a_title( 42.0 ) 
end

# rails 2 sample
def controller_action
  @price = @template.a_title( 42.0 ) 
end

如果要在帮助程序和控制器之间共享方法,可以通过辅助方法定义:

class SomeController < ActionController::Base
  helper_method :my_shared_method
  ...

  def my_shared_method
    #do stuff
  end
end

问候!