Rails 2.3.11 DateTime BigDecimal精度

时间:2011-04-05 01:36:51

标签: ruby-on-rails ruby

我目前在运行Ruby 1.8.7和Rails 2.3.2的Ruby on Rails上有一个项目

我有一些单元测试从数据库中读取数据,特别是两个连续项目的日期时间列,它们应该相隔24小时。在一个测试中,我将项目2的日期时间设置为等于项目1的日期时间。

当我执行断言以确保两个值相等时,测试在rails 2.3.2下正常工作。当我升级到rails 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>.

两个版本的rails中的浮点转换似乎存在问题。我如何解释浮点问题?

1 个答案:

答案 0 :(得分:2)

这也发生在我身上,我最终做到了这一点:

datetime.should be_a(Datetime) # maybe unnecessary
datetime.to_s.should == expected_datetime.to_s