0

日、月、年の 3 つの選択ボックスを表示する date_select を含むフォームがあります。今日の日付をカピバラで選択したいrspec統合テストがあります。そのため、Date.today を日、月、年に分割する必要があります。これを行う良い方法は何ですか?文字列を分割することもできますが、もっと洗練された方法はないでしょうか?

ハードコーディングされた日付を選択するためのカピバラ コードを次に示します。

select("13", :from => "visit_visit_date_3i")
select("July", :from => "visit_visit_date_2i")
select("2012", :from => "visit_visit_date_1i")
4

2 に答える 2

0

Date オブジェクトから日付部分を抽出するメソッドがあります。日付クラスには、月や曜日などを英語版に簡単に変換できる定数配列もあります。

したがって:

Date.today.day 
=> 13
Date::MONTHNAMES[Date.today.month] 
=> "July"
Date.today.year 
=> 2012

これはすべて、ここにあるDateのドキュメントにあります

于 2012-07-13T17:55:32.120 に答える
0

timecopを使用して現在の日付を固定することを検討してください。これは、後で「今日」または「今日から 1 週間後」を扱う他の方法をテストするときに役立ちます。

before { Timecop.freeze(Date.parse("Jul 13 2012") }
after { Timecop.return }

select("13", :from => "visit_visit_date_3i")これで、テストが実行されるどの日付でも機能します。

于 2012-07-13T20:35:43.557 に答える