在我的应用程序中,我想要一个“汽车”模型。它将有两个字段和其他字段不同:
date_from
和 date_till
(用于指定某人使用汽车的时间段)。我希望该模型验证date_from
应小于或等于date_till
。我的model_spec.rb草稿如下:require 'spec_helper'
describe Car do
it {should validate_presence_of(:model)}
it {should validate_presence_of(:made)}
it "should have date_till only if it has date_from"
its "date_till should be >= date_from"
end
显然,我可以编写一个“长”测试,尝试将date_till设置为大于date_from - 模型应该无效。但也许有一些优雅的方法来实现这个目标?
那么,我如何(使用RSpec匹配器)验证一个字段不大于另一个字段?
更新: 我看了@itsnikolay的答案,并像这样编写了代码:
it "should not allow date_till less than date_from" do
subject.date_from = Date.today
subject.date_till = Date.today - 1.day
subject.valid?.should be_false
end
没有使用匹配器,但这并不是一场悲剧 :)
it { is_expected.to be <= @car.date_till }
。 - Salomanuel