मैं रूबी रेल्स 4 और आरएसईपी-रेल्स मणि 2.14 का उपयोग कर रहा हूं। मेरी ऑब्जेक्ट के लिए मैं updated_at
नियंत्रक एक्शन चलाने के बाद ऑब्जेक्ट की विशेषता के साथ वर्तमान समय की तुलना करना चाहूंगा , लेकिन जब मैं कल्पना नहीं करता, तब तक मैं मुसीबत में हूं। यह है कि, निम्नलिखित कल्पना कोड है:
it "updates updated_at attribute" do
Timecop.freeze
patch :update
@article.reload
expect(@article.updated_at).to eq(Time.now)
end
जब मैं उपरोक्त युक्ति चलाता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:
Failure/Error: expect(@article.updated_at).to eq(Time.now)
expected: 2013-12-05 14:42:20 UTC
got: Thu, 05 Dec 2013 08:42:20 CST -06:00
(compared using ==)
मैं पास करने के लिए कल्पना कैसे कर सकता हूं?
नोट : मैंने भी निम्नलिखित की कोशिश की ( utc
अतिरिक्त जोड़ दें ):
it "updates updated_at attribute" do
Timecop.freeze
patch :update
@article.reload
expect(@article.updated_at.utc).to eq(Time.now)
end
लेकिन कल्पना अभी भी पास नहीं हुई है (ध्यान दें "मिला" मूल्य अंतर):
Failure/Error: expect(@article.updated_at.utc).to eq(Time.now)
expected: 2013-12-05 14:42:20 UTC
got: 2013-12-05 14:42:20 UTC
(compared using ==)
===
इसके बजाय का उपयोग करें ==
- वर्तमान में आप दो अलग-अलग समय ऑब्जेक्ट्स के object_id की तुलना कर रहे हैं। हालांकि Timecop डेटाबेस सर्वर समय फ्रीज नहीं करेगा। । । अगर आपके टाइमस्टैम्प आरडीबीएमएस द्वारा उत्पन्न किए जा रहे हैं तो यह काम नहीं करेगा (मुझे उम्मीद है कि आपके लिए यहां कोई समस्या नहीं है)
===
, लेकिन यह दूसरी सीमाओं को पार करने से पीड़ित हो सकता है। संभवत: सबसे अच्छा यह है कि आप अपने स्वयं के मैचर को खोजें या लिखें, जिसमें आप युगांतर सेकंड में परिवर्तित होते हैं और एक छोटे से पूर्ण अंतर की अनुमति देते हैं।