规范错误验证使用RSpec + CouchRest_Model

时间:2011-02-17 02:19:15

标签: ruby-on-rails ruby rspec

我试图对我的模型进行验证,这是我的模型

 class Account < CouchRest::Model::Base
         property :user, String 
         property :password, String
         property :name, String
         property :email, String
         property :activate, TrueClass, :default => true
         validates_presence_of :user, :password, :name, :email
         validates_length_of :password, :in => 6..15, :if => lambda{|account| !account.password.blank? }
         validates_uniqueness_of :user, :if => (lambda{|account| !account.user.blank?})
  end

进入我的model_spec我试图这样做

account = Account.new
account.should have(1).error_on_presence_of(:email)

但是1错误,我得到了6 我认为这可能是由于沙发床的验证造成的,但不确定。

有人可以为我澄清一下吗?

P.S。:如果我在控制台中验证相同的模型,我得到4个错误,对应于四个空属性

1 个答案:

答案 0 :(得分:2)

似乎你期待1个错误,但实际上有6个。要弄清楚错误哈希中的内容,你可以设置一个临时期望:

`account.errors.should == {}

然后示例将失败,RSpec将打印错误哈希的值,您可以看到实际生成了哪些错误。