ruby-on-rails - rails : devise validatable unit test always passes when it should fail

标签 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

但是由于某些奇怪的原因,在运行单元测试时它会在不应该保存的时候保存。我很难过。我想不通。

最佳答案

我已经解决了这个问题。我已经覆盖了 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/

相关文章:

ruby-on-rails - 设备可锁定第 n 次尝试时的自定义消息

ruby-on-rails - 在 Rails 中从 ActiveRecord::RecordNotFound 获取额外信息

ruby-on-rails - heroku登台还是在heroku中进行新的登台?

unit-testing - 在典型的 Web 应用程序中,单元测试与功能测试之间的正确平衡是什么?

c# - 完全指定模拟方法的返回值而不考虑参数

ruby-on-rails - 我在 rails generate devise :install 之前运行了 rails generate devise MODEL

ruby-on-rails - Rspec 3. #<RSpec::ExampleGroups::ConfigsAPI::GETApiConfig:0x007f84d93fbb90> 的未定义局部变量或方法 `response'

javascript - 从 Ruby 部分设置 javascript 变量

c++ - 我们应该修改函数签名以进行单元测试吗?

ruby-on-rails - Devise_token_auth 和 Devise 使用用户名和电子邮件登录