ruby-on-rails - Rails 单元测试中的日期时间问题

标签 ruby-on-rails datetime

我正在为我的 Rails 应用程序进行单元测试,但遇到了以下问题。

我有一个带有夹具的事件模型,归结为:

concert:
  name:        Wallflowers
  start_at:    <%= DateTime.new(1999) %>

在我的单元测试中,我有以下断言:
assert_equal DateTime.new(1999), events(:concert).start_at

测试失败,并显示以下消息:
<Fri, 01 Jan 1999 00:00:00 +0000> expected but was
<Thu, 31 Dec 1998 19:00:00 UTC +00:00>.

我不明白为什么它会被调整。错误时间的偏移量是5小时,这是我本地的偏移量。

其他可能相关的信息:
  • 问题只在测试时出现--我在开发中没有任何问题
  • environment.rb 包含 config.time_zone = 'UTC'
  • 如果我使用 Date.new 而不是 DateTime.new,则测试有效,但我需要使用 DateTime

  • 我错过了什么?感谢帮助。

    最佳答案

    改成这个

    concert:
      name: Wallflowers
      start_at: <%= DateTime.new(1999).to_s(:db) %>
    

    关于ruby-on-rails - Rails 单元测试中的日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1937863/

    相关文章:

    ruby-on-rails - 如何使用 Ruby(on Rails) 计算两个地理位置之间的公路距离?

    r - 在 R 中控制 POSIX 时间差输出

    android - 如何使用 Joda DateTime 显示荷兰月份

    java - 为什么 Joda 时间将我输入字符串中的 PM 更改为 AM?

    c# - 在MongoDB中存储DateTime对性能的影响

    java - Java 字符串到日期解析

    ruby-on-rails - ActiveRecord fixture 如何动态插入到全局命名空间中?

    ruby-on-rails - Heroku 每日自动复制 Postgres 数据库

    ruby-on-rails - 带时间戳的redis + Rails

    ruby-on-rails - Google 联系人 API 401 错误 RestClient::Unauthorized