日期、时间数据管理与模拟对象使用指南
1. 日期和时间数据管理
在程序开发中,日历逻辑常常是令人头疼的部分,尤其是在测试基于时间的代码时,如时间报告、自动登出、“1天前”文本显示等功能。下面我们来探讨一些处理日期和时间数据的方法。
1.1 常见问题
假设我们有一个 YAML 文件,包含一些项目及其开始日期:
runway:
name: Project Runway
start_date: 2010-01-20
greenlight:
name: Project Greenlight
start_date: 2010-02-04
gutenberg:
name: Project Gutenberg
start_date: 2010-01-31
我们想测试基于开始日期的代码,测试代码如下:
test "reports based on start date" do
actual = Project.find_started_in_last(6.months)
assert_equal(3, actual.size)
end
对应的实现代码为:
def self.find_started_in_last(time_span)
old_time = Date.today - time_span
all(:conditions => [
超级会员免费看
订阅专栏 解锁全文
1465

被折叠的 条评论
为什么被折叠?



