2013-07-30 5 views
0

나는 내 웹 사이트에서 datepicker로 표시 할 수있는 날짜를 테스트하고 있습니다. datepicker는 다음 X 영업일을 사용 가능하게하고 주말 및 공휴일을 무시합니다.Capybara 및 jQuery datepicker : Capybara는 일정에있는 특정 날짜가 클릭 가능 (유효 날짜)이 아니라고 생각합니다.

주문을 한 사람 (7 월 1 일)의 픽업 날짜를보고 픽업을 선택하는 다음 두 가지 시나리오를 테스트했습니다. 다음 영업일 (7 월 2 일, 3 일, 5 일, 8 일 및 9 일)을 사용할 수 있습니다. 나는 무력은 다음 RSpec에/카피 바라 코드를 테스트하고이 문제를 전달하지 :

find("#datepicker_").click 

find(".ui-datepicker-group-first").should_not have_link("1") 
find(".ui-datepicker-group-first").should have_link("2") 
find(".ui-datepicker-group-first").should have_link("3") 
find(".ui-datepicker-group-first").should_not have_link("4") 
find(".ui-datepicker-group-first").should have_link("5") 
find(".ui-datepicker-group-first").should_not have_link("6") 
find(".ui-datepicker-group-first").should_not have_link("7") 
find(".ui-datepicker-group-first").should have_link("8") 
find(".ui-datepicker-group-first").should have_link("9") 
find(".ui-datepicker-group-first").should_not have_link("10") 

가능한 날짜가해야 할 항목을 출하 대신 오일 운송 시간, 그래서 따기와 다음 테스트 거래를 3, 5, 8, 9, 10, 11, 12, 15 및 16 일 수 있습니다. 그러나 datepicker가 내가 사용할 수있을 것으로 예상하는 정확한 날짜 만 표시하더라도 내 테스트 (위와 동일하지만 2-17 사이의 범위에서 보임)는 실패합니다. 웬일인지, 제 2와 제 6이 명확히하지 않는 링크 (즉, 선택 가능한 날짜)를 가지고있다라고 말하는 것. 오류 CNA의 예는 아래에 볼 수 : 나는 그것을 rpsec에 체크를 한 직전 올립니다과 테스트를 동결 할 때 브라우저가 테스트 중에 어떻게 생겼는지의 스크린 샷을했다

Failures: 

    1) cart functionality should make the right delivery dates available in the cart 
    Failure/Error: find(".ui-datepicker-group-first").should_not have_link("2") 
     expected #has_link?("2") to return false, got true 
    # ./cart_functionality_spec.rb:100:in `block (2 levels) in <top (required)> 

. 스크린 샷은 어떤 이상한 것은 7 월 4 일이 같은 7 월 7 일, 7 월 17 일 다른 주말이 오류를 유발하지 않는다는 것입니다

Screenshot of datepicker available dates

아래에서 볼 수 있습니다. 제가 2, 6 일 시험을 주석 처리하면 시험이 통과됩니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까? 내가 함께 일하고 있어요

: 카피 바라 2.1, RSpec에 레일 2.14.0

답변

0

나는이 문제를 발견했다. 2 번째 링크가 아니고 12 번째 링크가 링크 였기 때문에 코드를 사용할 때

find(".ui-datepicker-group-first").should_not have_link("2") 

날짜 "12"에 대한 링크가 감지되었습니다. 이 같은 시나리오는 6 일과 16 일에 일어났습니다. 테스트를 다음으로 변경했습니다.

find(".ui-datepicker-group-first").should_not have_link(/^(2)$/) 

문제가 해결되었습니다.