簡體   English   中英

升級到Rails 5和rspec 3后無法存根包含的模塊方法

[英]Can't stub included module method after upgrading to Rails 5 and rspec 3

如標題所示,我正在將項目分別從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

此代碼在舊版本中未經修改即可工作,並且搜索表明這是正確的實現。 是什么原因造成的?

在Rails 5項目中,我使用以下語法(對控制器而不是輔助函數進行存根可能會有所不同):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM