एक नियंत्रक विधि में मैं उपयोगकर्ता के चर activation_sent_at
Time.zone.now
के बराबर सेट करता हूं जब उस उपयोगकर्ता को एक सक्रियण ईमेल भेजा जाता है। विकास सर्वर पर यह काम करता प्रतीत होता है (हालांकि मेरे आवेदन में समय अभिव्यक्ति मेरे कंप्यूटर के स्थानीय समय पर 2 घंटे पीछे है)।टाइमविथज़ोन और टाइम.ज़ोन.now एकीकरण परीक्षण
मैं एक एकीकरण परीक्षण शामिल करना चाहता हूं जो परीक्षण करता है कि activation_sent_at
वास्तव में ठीक से सेट हो जाता है या नहीं।
assert_equal @user.activation_sent_at, Time.zone.now
हालांकि, इस त्रुटि का उत्पादन:
No visible difference in the ActiveSupport::TimeWithZone#inspect output.
You should look at the implementation of #== on ActiveSupport::TimeWithZone or its members.
मुझे लगता है कि अपने परीक्षण में Time.zone.now
के लिए एक और अभिव्यक्ति का उपयोग करने का सुझाव दे रहा है तो मैं लाइन भी शामिल थे। मैंने http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html सहित विभिन्न स्रोतों को देखा है, लेकिन मुझे यकीन नहीं है कि यहां क्या करना है। इस त्रुटि के कारण क्या कोई सुझाव हो सकता है?
अतिरिक्त जानकारी:puts Time.zone.now
और puts @stakeholder.activation_sent_at
जोड़ा जा रहा है इस बात की पुष्टि दो बराबर हैं। सुनिश्चित नहीं है कि विफलता/त्रुटि उत्पन्न करता है।
मजेदार है, टाइमकॉप पहला उद्धारकर्ता था जिसे मैंने सोचा था जब मुझे इस मुद्दे का सामना करना पड़ा, फिर भी इससे मदद नहीं मिली। मजेदार। – bbozo
मुद्दा यह है कि यदि आप समय जमा करते हैं, तो यह मदद नहीं करता है - शायद कुछ infinitesimal बहाव के कारण जो भी अंकगणित खेल पर है विश्वसनीय रूप से तुलना नहीं कर सकते हैं। हालांकि, जब मैंने मिलीसेकंड के साथ अपने चयन के एक विशेष पल में समय निर्धारित किया, तो यह काम करता है, यानी 'टाइमकॉप.फ्रीज' विफल रहता है और 'टाइमकॉप.फ्रीज़ टाइम.परसे ("2016-09-13 18:26 : 09 +0200 ") 'काम करता है' – bbozo
यदि आप उत्तर अपडेट करते हैं, तो मैं +1 – bbozo