【问题标题】:How to test mongoid model validations with message by shoulda?如何使用 shoulda 的消息测试 mongoid 模型验证?
【发布时间】:2013-03-22 11:15:12
【问题描述】:

我有一个带有验证的模型,如下所示:

class Order
  include Mongoid::Document

  field :first_name, type: String
  field :last_name, type: String

  validates_presence_of :first_name, :message => "Can't be empty"
  validates_presence_of :last_name, :message => "Can't be empty"
end

我用rspecthoughtbot's shoulda描述模型:

describe Order do
  # validations
  it { should validate_presence_of(:first_name) }
  it { should presence_of(:last_name) }
end

但我失败了:

Failures:

  1) Order 
     Failure/Error: it { should validate_presence_of(:first_name) }
       Expected errors to include "can't be blank" when first_name is set to nil, got errors: ["first_name Can't be empty (nil)", "last_name Can't be empty (nil)"]
     # ./spec/models/order_spec.rb:10:in `block (2 levels) in <top (required)>'

此外,“应该”案例在模型验证中没有消息也能很好地工作。

如何使用消息测试模型验证?

【问题讨论】:

    标签: rspec mongoid shoulda


    【解决方案1】:

    mongoid-rspec gem 允许使用消息测试模型验证。

    it { should validate_uniqueness_of(:email).with_message("is already taken") }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2013-09-12
      • 2010-12-16
      • 1970-01-01
      相关资源
      最近更新 更多