我在这里遗漏了一些东西,但我似乎找不到问题所在。这个测试真的很简单,它应该失败但它总是通过。它正在创建一个密码不匹配的用户。
我的用户模型中有这个。所以我知道 :validatable 已设置。
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
当我使用控制台手动测试它时,它工作正常。它不会让我保存不匹配的密码
这是单元测试:
user = User.new_normal_user(
:email => 'some@email.com',
:password => 'some_password',
:password_confirmation => 'some_other_password'
)
assert user.save
但是由于某些奇怪的原因,在运行单元测试时它会在不应该保存的时候保存。我很难过。我想不通。
最佳答案
我已经解决了这个问题。我已经覆盖了 password_required?功能。它只会在某些条件下返回 false。它永远不会返回 true。所以我只是让它在它应该返回 true 或 false 时返回 true 或 false,并且单元测试按预期工作并捕获密码不匹配问题。
关于ruby-on-rails - rails : devise validatable unit test always passes when it should fail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677269/