gpt4 book ai didi

ruby-on-rails - Rails:Capybara无法使用Devise夹具数据登录用户

转载 作者:行者123 更新时间:2023-12-04 20:56:43 24 4
gpt4 key购买 nike

我正在为我的应用程序编写集成测试,并试图使用Capybara登录用户。当我在测试本身中创建一个User对象并输入该用户的详细信息时,该对象将通过并且用户已登录。

但是,当我尝试使用固定装置的详细信息登录时,用户永远都不会登录。从test.log中可以看出,正在返回401错误:

Started POST "/users/sign_in" for 127.0.0.1 at 2015-10-14 18:54:21 +0000
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"user@company.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)
Processing by Devise::SessionsController#new as HTML


以下是一些其他相关文件。前两个是相同的测试;第一个版本是成功登录用户的测试,第二个版本未成功登录。

(成功登录)project_flows_test.rb

require 'test_helper'

class ProjectFlowsTest < ActionDispatch::IntegrationTest

test "fixtures debugging" do
@user = User.create(email: "user@company.com", password: "useruser123")
visit new_user_session_path
fill_in "Email", with: @user.email
fill_in "Password", with: @user.password
click_button "Log in"
end
end


(不登录并返回401)project_flows_test.rb

require 'test_helper'

class ProjectFlowsTest < ActionDispatch::IntegrationTest

test "fixtures debugging" do
visit new_user_session_path
fill_in "Email", with: users(:standard_user).email
fill_in "Password", with: users(:standard_user).password
click_button "Log in"
end
end

最佳答案

如果装置用户已经存在装置中,则需要确保密码已加密,否则测试将无法通过。

例:

# users.yml
user:
email: someemail@email.com
encrypted_password: <%= Devise::Encryptor.digest(User, "password") %>

关于ruby-on-rails - Rails:Capybara无法使用Devise夹具数据登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33133819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com