【问题标题】:Working with and testing dates in rails在 Rails 中使用和测试日期
【发布时间】:2011-04-29 22:54:02
【问题描述】:

我的应用程序经常使用日期。许多 ajax 调用和 url 都涉及日期时间,我发现典型的格式 '1920-10-10 18:30:00' 对这些目的不友好。我通过创建一个辅助方法来解决此问题,该方法基本上将不必要的字符从日期 (192010101830) 中剔除,并创建了另一种将字符串转换回日期对象的方法。

当我建立一个网址时,它会变成这样:

=link_to "Send Date", thing_my_date_path(date_to_string(DateTime.now))

然后当 thing_date 动作接收到时,它会将参数转换回日期时间对象

def my_date
  @date = string_to_date(params[:mydate])
  ....
end

这在开发中运行良好。不过我完全愿意接受其他建议。

问题是当我去测试我的应用程序时。测试失败是因为 date_to_string 和 string_to_date 的辅助方法不存在。我可以将它们包含在测试中,但我觉得它们应该分开。

所以我正在寻找
a) 一种更好的方式来传递日期,更重要的是

b) 一种测试依赖于辅助方法的操作的方法。

【问题讨论】:

    标签: ruby-on-rails datetime rspec


    【解决方案1】:

    有针对这种想法的内置方法。

    > DateTime.now.to_s(:number)
    => "20110429162748" 
    > DateTime.parse("20110429162748")
    => Fri, 29 Apr 2011 16:27:48 +0000 
    

    希望对您有所帮助..

    【讨论】:

    • 这绝对有助于我目前的情况,但我仍然难以将辅助方法与控制器测试分开。
    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 2010-12-28
    • 1970-01-01
    • 2016-04-21
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多