未找到Rails rspec helper方法

时间:2014-01-20 23:27:13

标签: ruby-on-rails

简单的问题。

我的 ApplicationHelper 中有一个方法调用我的SessionsHelper来加载current_user

module ApplicationHelper
  def  some_helper_method
    if current_user.respond_to? :some_method
     #does stuff
    end
  end
end


module SessionsHelper
  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= User.find(...)
  end

这在我正在运行的应用程序中运行良好。但是当从Rspect运行时,ApplicationHelper方法无法找到current_user方法。在正在运行的应用程序中,我知道该方法可用于某些rails自动类加载。但不确定在Rspec中使这项工作的最佳方法是什么。

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决这个问题,但请先给我一些背景知识。

您可以配置rails,告诉您使用include_all_helpers向控制器和视图中公开哪种帮助程序。

在过去,您在ApplicationController中调用了helper :all

这就是这些方法暴露的方式。

回到你的问题:

解决方案numero uno:helper.stub(current_user: build(:user))

解决方案号码:helper.extend UserHandling

帕戈