正如标题所述,我正在将项目分别从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
此代码在旧版本中未经修改,并且搜索表明这是正确的实现。可能导致这种情况的原因是什么?
答案 0 :(得分:0)
在Rails 5项目中,我使用以下语法(对于存根控制器而不是帮助程序可能会有所不同):
allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(login_session)