0

我正在尝试测试一个轨道、应用程序,在一种特殊情况下,我需要在我的测试用例中创建一个 TimeWithZone 对象。所以我这样写:

started_at = ActiveSupport::TimeWithZone(started_at, Time.zone)

只是得到一个错误:

NoMethodError: undefined method `TimeWithZone' for ActiveSupport:Module

我尝试要求'active_support'、'active_support/time'、''active_support/time_with_zone'。当我运行测试时,这些语句中的每一个都评估为假(它在 irb 中运行良好)

知道我做错了什么吗?

4

1 回答 1

1

尝试创建一个new对象:

started_at = ActiveSupport::TimeWithZone.new(started_at, Time.zone)

但是,您永远不需要直接创建此类的实例。

如果你已经正确设置了 Time.zone,你可以简单地使用at它的方法:

started_at_with_zone = Time.zone.at(started_at)

查看Rails API 文档了解详细信息。

于 2010-10-16T22:50:53.357 回答