0

我正在从 rails 3 升级到 3.1.8(及更高版本)。我的一些测试失败了,其中一个乍一看似乎是因为从 mysql2 gem(0.2.x 到 0.3.x)的变化。然而,它变得有点陌生。这是正在发生的事情。

在我的测试中,我正在更新模型上的属性,并检查它们是否已保存:

... post :create, :advertisement => @advertisement_attributes assert_equal assigns(:blah).start_date, @blah_attributes[:start_date]

说他们是不同的时代是失败的。如果我放一个 binding.pry 并在 assert_equal 之前跳进去,这就是我得到的:

a =  assigns(:blah).start_date
b =  @blah_attributes[:start_date]
a == b #false
a.to_s #"2012-10-17 20:46:12 UTC"
b.to_s #"2012-10-17 20:46:12 UTC"
a.to_i #1350506772
b.to_i #1350506772
a.to_i - b.to_i #0

到目前为止..我仍然对 == 返回错误的原因感到困惑。但真正奇怪的是,如果我减去日期 -

a - b #-0.989403009414673

如果有人能解释这里发生了什么,我很想知道!

此外,同样的测试在 rails 3 中通过了很好的测试(没有为应用程序设置时区),任何指向已更改内容的指针也很方便!

4

0 回答 0