के साथ दिनांक मान्य करता है मैं रेल और रुपेक के लिए थोड़ा नया हूं और इस तरह मुझे यकीन नहीं है कि उस तिथि का सत्यापन कैसे करें मेरे मॉडल में मान्य हैं। मैंने एक मॉडल इवेंट बनाया है जिसमें प्रारंभ और समाप्ति समय है और इन पर कुछ अपमानजनक स्थितियां हैं जैसे प्रारंभ समय अतीत में नहीं हो सकता है और अंत समय प्रारंभ समय के बाद होना चाहिए।परीक्षण मॉडल रेलवे RSpec
इन सत्यापन मैं ValidatesTimeliness https://github.com/adzap/validates_timeliness उपयोग कर रहा हूँ सुनिश्चित करने के लिए
मेरे मॉडल निम्नानुसार है:
class Event < ActiveRecord::Base
...
validates_datetime :start_date,
:after => :now,
:after_message => "Event cannot start in the past"
validates_datetime :end_date,
:after => :start_date,
:after_message => "End time cannot be before start time"
end
मेरी RSpec परीक्षण में मेरे पास है:
describe Event do
let(:event) { FactoryGirl.build :event }
subject { event }
context "when start_date is before the current time" do
it {should_not allow_value(1.day.ago).
for(:start_date)}
end
context "when end_date is before or on start date" do
it {should_not allow_value(event.start_date - 1.day).
for(:end_date)}
it {should_not allow_value(event.start_date).
for(:end_date)}
end
context "when the end_date is after the start_date" do
it {should allow_value(event.start_date + 1.day).
for(:end_date)}
end
end
हालांकि यह नहीं करता है वास्तव में परीक्षण करें कि मेरी प्रारंभ तिथि सटीक दिनांक समय से पहले होनी चाहिए। उदाहरण के लिए यदि मैं अपने मॉडल में :now
के बजाय गलती से :today
का उपयोग करता हूं, तो ये परीक्षण भी पास होंगे।
मैंने ऑनलाइन पढ़ा कि validate_date
(http://www.railslodge.com/plugins/1160-validates-timeliness) नामक एक आरएसपीसी मैचर होता था जो कि मैं बिल्कुल देख रहा हूं लेकिन जहां तक मैं कह सकता हूं कि इसे हटा दिया गया है।
मेरा सवाल यह है कि मैं अपने परीक्षणों में सुधार कैसे कर सकता हूं, क्या मुझे परीक्षणों को जोड़ने की ज़रूरत है जो थोड़ी सी समय (यानी एक एमएस) कोशिश करें ताकि यह सुनिश्चित किया जा सके कि पास/असफल हो या क्या ऐसा करने का बेहतर तरीका है?
अग्रिम धन्यवाद!