在我升级一个依赖Date gem 3.3.3的gem之前,这个期望已经过去了:
# order.purchased_at = Sun, 26 Jan 0020 00:00:00 UTC +00:00
# order.purchased_at.class == ActiveSupport::TimeWithZone
expect(order.purchased_at).to eq 'Sun, 26 Jan 0020 00:00:00 UTC +00:00'.to_datetime
字符串
由于某种原因,添加Date gem 3.3.3使上述期望失败,有什么想法吗?
1条答案
按热度按时间mqxuamgl1#
您的测试实际上反映了应用程序代码中需要测试的内容吗?也就是说,你真的用
to_datetime
转换日期时间,并需要它们与使用==
的ActiveSupport::TimeWithZone
相比是真的吗?我这么问是因为我并不感到惊讶:
字符串
正如您所看到的,
DateTime
不包括实际的时区,只包括偏移量,因此与包含时区的对象的任何相等都是一种延伸。Which is one of the reasonsDateTime
was deprecated as of Ruby 3.0如文档所述,使用
Time
代替:型
或者......如果你的测试真的关心将要显示的内容,那么也许你应该比较字符串化的版本:
型