2013-02-27 40 views
2

我正在使用rails-3應用程序上的黃瓜BDD。未定義的方法'signed_in?'在使用「assert!controller.signed_in」的黃瓜BDD時

當我使用「斷言!controller.signed_in?」在step_definition 當我運行「黃瓜」 後來我得到這個錯誤「未定義的方法'signed_in?對於零:NilClass(NoMethodError)「

爲什麼它沒有進入控制器輔助程序(signed_in?在sessions_helper中定義)?

當我試圖通過 「assert ! SessionsController.signed_in?

Error : undefined method `signed_in?' for SessionsController:Class (NoMethodError) 

而當 「assert ! SessionsHelpers.signed_in?」 錯誤:未定義的方法`signed_in」對於SessionsHelper:模塊(NoMethodError)

在我Sessions_helper:

def signed_in? 
    !current_user.nil? 
    end 

回答

0

我也遇到過這個問題,並通過添加World(SessionsHelper)到黃瓜步驟文件的底部,解決了這個問題(有可能是一個更好的地方放它)。

在一個側面說明,你可能會遇到與餅乾等問題和會話,因爲它出現Cucumber不請求之間支持這些。因此,例如,在執行重定向/提交登錄表單後,您將無法測試signed_in?