Nella mia app voglio avere un modello Car
.In RSpec - come posso verificare se un attributo è minore (o più) di un altro
Avrà due campi tra gli altri: date_from
e date_till
(per specificare un periodo di tempo in cui qualcuno lo stava usando).
E voglio che il modello convalidi che date_from dovrebbe essere inferiore o uguale a date_till.
mio progetto model_spec.rb si presenta così:
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
Ovviamente, posso solo scrivere un test "lungo", dove cercherò di impostare date_till essere superiore a date_from - e il modello dovrebbe essere solo non valido. Ma forse ci sono alcuni modi eleganti per farlo?
Quindi, come posso (utilizzando i parametri RSpec) convalidare che un campo non è maggiore di un altro?
UPD: ho guardato @ di itsnikolay risposta e codificati in quel modo:
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
doveva fare senza matchers. Beh, non una tragedia :)
se entrambi inizializzato come zero? il test passerà, ma copre tutto il comportamento? –