为什么FactoryBot不将密码保存在测试数据库中?

时间:2019-05-24 04:07:09

标签: ruby-on-rails rspec factory-bot

我刚刚遇到一种情况,我不得不弄清楚为什么我的测试用户无法登录系统测试。

事实证明,该用户的密码为nil。

创建用户后,我运行binding.pry:

import tkinter as tk

class GUI(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.action = None
        tk.Button(self,text="Print in 10 sec",command=self.callback).pack()
        tk.Button(self, text="Cancel print", command=self.cancel_callback).pack()

    def callback(self):
        self.action = self.after(10000,lambda: print ("Hi"))

    def cancel_callback(self):
        if self.action:
            self.after_cancel(self.action)
            print ("Print cancelled")

root = GUI()
root.mainloop()

有人知道为什么密码不能通过FactoryBot保留在数据库中吗?

1 个答案:

答案 0 :(得分:1)

User.last.password为nil的原因是,纯文本密码已加密并且无法访问。检查您的schema.rb文件...您应该仅会看到一个“加密密码”列(我假设您正在使用Devise)。

要检查用户是否仍然存在,只需检查user.persisted?user.errors或类似的东西以找出发生了什么情况。