【问题标题】:Test fails because of differences in date formats由于日期格式不同,测试失败
【发布时间】:2016-01-05 13:24:38
【问题描述】:

下面的测试比较两个日期。由于日期格式不同,测试失败。我怎样才能使这个测试工作?

expiration = Time.zone.now - 50.days
# some lines to update @organization with a new expiration
assert_equal @organization.exp, expiration
# puts @organization.exp => Mon, 16 Nov 2015
# puts expiration => Mon, 16 Nov 2015 14:22:39 CET +01:00

【问题讨论】:

  • expiration = Date.today - 50.days 然后assert_equal @organization.exp, expiration

标签: ruby-on-rails ruby datetime ruby-on-rails-4 integration-testing


【解决方案1】:

使用Time#to_date方法,喜欢

assert_equal @organization.exp, expiration.to_date

【讨论】:

  • @Marty,很好,你能选择答案吗?
  • 是的,几分钟后我可以选择答案作为解决方案。
【解决方案2】:

@organization.exp 似乎是Date,但expiration 不是:

expiration = Time.zone.now - 50.days
#=> Mon, 16 Nov 2015 14:36:06 CET +01:00

expiration.class
#=> ActiveSupport::TimeWithZone

要获得时区感知 Date 实例,您可以使用 Date#current 并使用 DateAndTime::Calculations#days_ago 更改它:

expiration = Date.current.days_ago(50)
#=> Mon, 16 Nov 2015

expiration.class
#=> Date

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2011-11-14
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多