我正在从rails 3升级到3.1.8(及以后)。我的几个测试都失败了,其中一个似乎乍一看是因为mysql2 gem(0.2.x到0.3.x)的变化。然而,它有点陌生。这就是发生的事情。
在我的测试中,我正在更新模型上的属性,并检查它们是否已保存:
... 发布:创建,:广告=> @advertisement_attributes assert_equal指定(:blah).start_date,@ blah_attributes [:start_date]
说它们是不同的时代是失败的。 如果我在assert_equal之前放置binding.pry并跳转,这就是我得到的:
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
到目前为止......我仍然对为什么==返回false感到困惑。但是真奇怪是什么,如果我减去日期 -
a - b #-0.989403009414673
如果有人能解释这里发生了什么,我很想知道!
此外,同样的测试在rails 3中传递良好(没有为应用程序设置时区),任何改变指针的指针也会很方便!