我想对登录流程进行验收测试,但我遇到了意外的user.authenticate
方法行为。
开发环境中的身份验证按预期工作:带有电子邮件和普通密码对的 POST 完美通过。当我运行测试时出现问题:使用普通密码的身份验证失败。但奇怪的是,它成功了密码的 hash。
这是代码:
class SessionsController < ApplicationController
...
def create
user = User.find_by_email(params[:email].downcase)
logger.debug Rails.env
logger.debug "password #{params[:password]}"
logger.debug user.authenticate(params[:password]).to_yaml
...
以下是不同环境的日志:
env development
password 123456
--- !ruby/object:User
env test
password 123456
--- false
env test
password $2a$10$70AlnpaXIMHtjDUei/1HU.OSEG4WVjW6ens3jzN04bC8SOxTv2Ftm
--- !ruby/object:User
知道我该怎么做才能在测试环境中使用纯密码成功进行身份验证吗?
我bcrypt-ruby
在 ActiveModel 对象中使用密码。
谢谢。