升级到Rails 5和rspec 3

时间:2017-03-06 02:24:19

标签: ruby-on-rails ruby rspec upgrade

正如标题所述,我正在将项目分别从4.2和2升级到Rails 5和Rspec 3。所有测试都在升级之前通过,但现在应用程序控制器的视图助手规范给了我一个错误。

在规范中存在此代码:

allow(helper).to receive(:current_user).and_return(login_session)

但尝试运行此行会出错:

*helper object* does not implement: current_user

有一个验证模块可以设置current_user,它包含在应用程序控制器中。

  def current_user
    @current_user ||= session[:login_session]
    @current_user ||= LoginSession.new
    return @current_user
  end

此代码在旧版本中未经修改,并且搜索表明这是正确的实现。可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

在Rails 5项目中,我使用以下语法(对于存根控制器而不是帮助程序可能会有所不同):

allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(login_session)