[英]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.