繁体   English   中英

从集成测试中的date_select中选择Date.today

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM