在我的应用程序中,我想要有一个Car
模型。在RSpec中 - 如何测试一个属性是否比另一个属性更少(或更多)
它将包含两个字段: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匹配器)验证一个字段不会比另一个字段更大?
UPD: 我看着@ 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
不得不这样做不匹配器。好了,不是悲剧:)
如果他们都初始化为零?测试会通过,但它覆盖了所有的行为? – 2013-02-22 09:33:18