簡體   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