[英]Select Date.today from date_select in integration test
我有一个带有date_select的表单,其中显示了3个选择框,分别用于日,月和年。 我有一个rspec集成测试,我想在这里选择水豚的今天。 所以我必须将Date.today拆分为日,月和年。 有什么好方法吗? 我可以进行一些字符串拆分,但是也许有更复杂的方法吗?
在这里,您会看到水豚代码以选择硬编码的日期:
select("13", :from => "visit_visit_date_3i")
select("July", :from => "visit_visit_date_2i")
select("2012", :from => "visit_visit_date_1i")
有一些从Date对象提取日期部分的方法。 date类还具有一些常量数组,可轻松将星期几和星期几转换为英语版本。
从而:
Date.today.day
=> 13
Date::MONTHNAMES[Date.today.month]
=> "July"
Date.today.year
=> 2012
所有这些都在Date的文档中,该文档位于此处 。
您可能会考虑使用timecop冻结当前日期。 稍后在测试其他方法是处理“今天”还是“从今天起一周”时,这将派上用场
before { Timecop.freeze(Date.parse("Jul 13 2012") }
after { Timecop.return }
现在,您可以select("13", :from => "visit_visit_date_3i")
,它将在运行测试的任何日期生效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.