繁体   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