[英]Integration testing login with oauth using Rails, Capybara and Selenium?
[英]Rails 3.2 integration testing a login system
我已经按照RailsCasts的相关步骤从头开始进行身份验证: http ://railscasts.com/episodes/250-authentication-from-scratch-revised
现在,我想使用内置的测试框架进行集成测试。
在我的数据库中,因为我正在使用has_secure_password,所以我有用于email和password_digest的字段(以及其他字段)。 在我为用户准备的装置中
account_administrator:
email: account_administrator@test.com
password_digest: password
first_name: Bob
last_name: Jones
is_team_member: true
is_direct_manager: false
is_senior_leadership: false
is_reviewer: false
is_account_administrator: true
在我的整合测试中
require 'test_helper'
class UserFlowsTest < ActionDispatch::IntegrationTest
fixtures :users
def login(user)
open_session do |s|
u = users(user)
s.https!
s.post "/sessions", email: u.email, password: "password"
assert_redirected_to root_url
end
end
test "logging in" do
login(:account_administrator)
end
end
我遇到的问题是“登录”测试失败,并显示以下错误:
1) Error:
test_logging_in(UserFlowsTest):
BCrypt::Errors::InvalidHash: invalid hash
我认为是因为我在设备中提供的“哈希”不是真正的password_digest,而只是字符串“ password”。 如何解决此问题以使测试正常进行?
在数据库中,从应用程序用户界面或Rails控制台( User.create(...)
)中使用password ='password'在数据库中手动创建用户。 然后使用rails控制台找到password_digest( User.first.password_digest
)-然后将该password_digest粘贴到灯具中的password_digest字段中,它应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.