1

我正在尝试通过 Rspec 和用户登录来通过最小的测试。其中一部分意味着设置一个使用 has_secure_password 进行身份验证的用户。我正在尝试这个:

scenario 'test signin' do
  @attr = { :email => "jtjt@some.com",
             :password => "pass123"
  }
  User.create!(@attr)
  visit signin_path
  fill_in 'Email', with: 'jtjt@some.com'
  fill_in 'Password', with: 'pass123'
  click_button 'Log in'
end

我已经添加了

attr_accessible :password, :password_confirmation

但得到以下错误:

1) test login with email test signin
   Failure/Error: User.create!(@attr)
   NoMethodError:
     undefined method `password_digest=' for #<User:0x007fd89b02a028>
   # ./integration/email_login_spec.rb:15:in `block (2 levels) in <top (required)>'

我尝试添加:password_confirmation 但实际上得到了相同的错误(?)。我将使用 FactoryGirl 之类的东西,但我想得到这件作品,我认为这很简单。知道我做错了什么吗?

谢谢

编辑 2 我们确实有 password_digest 字段,并且代码已经工作了一段时间。只是想在我接手项目时添加一些集成测试。

4

1 回答 1

2

还要确保您的用户模型password_digest中有attr_accessor

于 2013-04-13T10:34:28.103 回答