2012-07-13 7 views
0

일, 월 및 연도에 대해 세 개의 선택 상자를 표시하는 date_select가있는 양식이 있습니다. 저는 카피 바라 (capybara)로 오늘의 날짜를 선택하기를 원하는 rspec 통합 테스트를 가지고 있습니다. 그래서 Date.today를 일, 월, 년으로 나눠야합니다. 이 작업을 수행하는 좋은 방법은 무엇입니까? 문자열 분할을 할 수는 있지만 좀 더 정교한 방법이 있을까요?통합 테스트에서 date_select에서 Date.today를 선택하십시오.

은 여기에서 카피 바라 코드가 하드 코딩 날짜를 선택 참조 :

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

답변

0

는 Date 객체에서 날짜 부분을 추출하는 방법이 있습니다. 날짜 클래스에는 달 및 요일 같은 것들을 영어 버전으로 쉽게 변환 할 수 있도록하는 일정한 배열이 있습니다. 따라서

:

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

이 모든 here을있는 날짜의 문서에 있습니다.

0

timecop을 사용하여 현재 날짜를 고정하는 것이 좋습니다. '오늘부터 일주' '오늘'또는 다루는 다른 방법

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

지금 당신이 select("13", :from => "visit_visit_date_3i")하고 테스트가 실행되는 어떤 일을 위해 작동 할 수 있는지 여부를 테스트 할 때 유용 이후에 제공됩니다.

관련 문제