2011-04-05 13 views
6

मैं वर्तमान में रूबी 1.8.7 और रेल 2.3.2रेल 2.3.11 दिनांक समय BigDecimal प्रेसिजन

मैं कुछ इकाई परीक्षण है कि एक डेटाबेस से डेटा पढ़ने चलाने पर रूबी में एक परियोजना है, विशेष रूप से एक दिनांक समय स्तंभ लगातार दो वस्तुओं के लिए जो 24 घंटे अलग होने चाहिए। एक परीक्षण में मैं आइटम 2 के बराबर आइटम 2 के लिए डेटाटाइम सेट कर रहा हूं।

जब मैं यह सुनिश्चित करने के लिए एक जोर देता हूं कि दो मान बराबर हैं, तो परीक्षण रेल 2.3.2 के तहत ठीक काम करता है। जब मैं 2.3.11 रेल में नवीनीकृत, परीक्षण दिखा विफल रहता है कि दो बार के बीच का अंतर निम्न त्रुटि के साथ बंद होने के लिए:

<Thu, 01 Jan 2009 06:00:00 CST -06:00> expected but was 
<Thu, 01 Jan 2009 05:59:59 CST -06:00>. 

वहाँ के दो संस्करण में चल बिन्दु रूपांतरण के साथ एक मुद्दा हो रहा है रेल। मैं फ्लोटिंग पॉइंट इश्यू के लिए कैसे खाता कर सकता हूं?

+1

अपने शीर्षक में आप कहते हैं कि रेल 2.3.11, लेकिन अपने प्रश्न में आप कहते हैं 2.3.5, जो यह क्या है? –

+1

समस्या को इंगित करने के लिए धन्यवाद, निश्चित। –

+1

डेटाबेस में संग्रहीत मूल्य क्या हैं? आपको 'RAILS_ENV = test script/console' पर अपने परीक्षण को दोहराने में सक्षम होना चाहिए और फिर SQL शैल का उपयोग करके वास्तविक डीबी मानों का निरीक्षण करना चाहिए। क्या आप अपने मूल्यों या किसी अन्य विधि को समायोजित करने के लिए 'डेटटाइम # अग्रिम' का उपयोग कर रहे हैं? – tadman

उत्तर

2

यह भी मुझे क्या हुआ है, और मैं यह कर समाप्त हो गया:

datetime.should be_a(Datetime) # maybe unnecessary 
datetime.to_s.should == expected_datetime.to_s 
संबंधित मुद्दे