2

为了测试我的 Rails/Devise 应用程序,我想创建 100 个用户并以他们的身份登录。

我尝试了以下方法:

INSERT INTO users (id,email,encrypted_password)
  VALUES (11,"test1@example.com",
    "$2a$10$VQJ9lT78.e1dtyAnkng1/ey9euL6hK/kUNQMDv8VJMAovXpuVNDZG");

对于encrypted_password,我只是从另一个密码为的用户那里复制了值testtest

问题:我无法test1@example.com使用密码登录testtest

我怀疑encrypted_password有盐,我需要一个工具来生成它。config.encryptorbcrypt。我安装了 bcrypt (Linux),但手册页很短,只解释了如何加密文件,所以我猜它不是最方便的加盐密码的工具。

如何快速创建 100 个加盐密码?
比注册 100 次还要快。

4

1 回答 1

5

从您的测试中制作u = User.create(:email => 'youruser@mail.com', :password => 'testtest', :password_confirmation => 'testtest')然后u.confirm!(如果您使用可确认模块)应该为用户正确生成 encrypted_pa​​ssword。

无论如何,您应该考虑使用夹具或蓝图进行测试。

于 2011-09-19T10:58:54.323 回答