की तुलना में कम (या अधिक) है, तो मेरे ऐप में मैं Car
मॉडल चाहता हूं।आरएसपीसी में - मैं कैसे परीक्षण कर सकता हूं यदि एक विशेषता
इसमें दो क्षेत्रों के बीच दो फ़ील्ड होंगे: date_from
और date_till
(किसी व्यक्ति द्वारा इसका उपयोग करने की अवधि निर्दिष्ट करने के लिए)।
और मैं चाहता हूं कि मॉडल उस तारीख को मान्य करे, दिनांक दिनांक से कम या बराबर होना चाहिए। जाहिर है
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_from से अधिक होना date_till सेट करने की कोशिश करेंगे मैं सिर्फ एक "लंबे" परीक्षण लिख सकते हैं - और मॉडल सिर्फ होना चाहिए:
मेरे model_spec.rb मसौदा इस तरह दिखता है अवैध। लेकिन शायद ऐसा करने के कुछ शानदार तरीके हैं?
तो, मैं (आरएसपीईसी मैचर्स का उपयोग करके) कैसे मान्य कर सकता हूं कि एक फ़ील्ड दूसरे से अधिक नहीं है?
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
matchers बिना यह करने के लिए था। ठीक है, नहीं एक त्रासदी :)
में अगर वे दोनों शून्य के रूप में शुरू किया? परीक्षण पास होगा, लेकिन क्या यह सभी व्यवहार को कवर करता है? –