W mojej aplikacji chcę mieć model Car
.W języku RSpec - jak mogę przetestować, czy jeden atrybut jest mniejszy (lub większy) niż inny
Będzie zawierać dwa pola między innymi: date_from
i date_till
(w celu określenia okresu, w którym ktoś go używał).
I chcę, aby model sprawdził, czy data_od nie powinna być mniejsza lub równa niż date_till.
Moja model_spec.rb projekt wygląda tak:
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
Oczywiście, można po prostu napisać „długiej” test gdzie postaram się ustawić date_till być większa niż date_from - a model właśnie powinno być nieważny. Ale może istnieją pewne eleganckie sposoby na zrobienie tego?
W jaki sposób mogę (przy użyciu interpreterów RSpec) sprawdzić, czy jedno pole nie jest większe od innego?
UPD: Spojrzałem na odpowiedź użytkownika @ itsnikolay i oznaczenia go tak:
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
musiał to zrobić bez dopasowujących. Cóż, nie jest to tragedia :)
jeśli oboje zainicjowany jako zero? test minie, ale czy obejmuje on wszystkie zachowania? –