簡體   English   中英

Ruby on Rails:如何在測試內部使用devise登錄?

[英]Ruby on Rails: How can I sign in with devise inside of my tests?

我在測試中登錄Devise時遇到問題。 我在Rails中使用默認的測試套件。

在我的測試幫助文件中,我定義了一個log_in方法,如下所示:

  def log_in
    @user = User.create(id: 1)
    sign_in(:user, @user)
  end

我沒有任何錯誤,該方法只是沒有登錄我。我知道這是因為我在用戶未登錄時重定向了用戶,而我的測試之一的結果是:

ContentsControllerTest#test_should_show_content [E:/Uni/coursework/empire/test/controllers/contents_controller_test.rb:32]:
Expected response to be a <success>, but was <302>

像這樣在安裝程序中調用sign_in ...

  setup do
    @content = contents(:one)
    log_in
  end

對於如何登錄的任何幫助將不勝感激。

你也應該

include Devise::TestHelpers

在這里,您有一些代碼示例Minitest + Devise

我通過將log_in方法更改為以下內容解決了問題:

  def log_in
    sign_in(users(:one))
  end

首先我不使用固定裝置的原因是因為我遇到固定裝置問題,導致了一些奇怪的錯誤。 務必檢查您的燈具。

暫無
暫無

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

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