rails:设计有效的单元测试总是在它失败时通过

时间:2012-03-13 01:42:47

标签: ruby-on-rails unit-testing devise

我在这里遗漏了一些东西,但我似乎无法找到问题所在。这个测试非常简单,它应该会失败,但它总是会通过。它正在创建一个具有不匹配密码的用户。

我的用户模型中有这个。所以我知道:设置了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

但是出于某些奇怪的原因,在运行单元测试时,它会保存,而不应该。我很难过。我无法弄清楚这一点。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我覆盖了password_required?功能。只有在某些条件下它才会返回虚假的地方。它永远不会真实。所以我只是在它应该返回true或false时,单元测试按预期工作并且捕获密码不匹配问题。