2013-07-30 12 views
0

我有一個測試我正在做我在哪裏測試我的網站顯示日期選擇器的可用日期。日期選擇器應該使下X個工作日可用,並忽略週末和節假日。水豚和jQuery datepicker:水豚認爲日曆上的某些日期是可點擊的(有效日期),當他們不是

我正在測試兩種情況,一種是查看下訂單(7月1日)的人的取件日期,然後選擇取件,接下來的5個工作日(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") 

與運輸物品,而不是用5天的運輸時間撿,因此,現有的日期將會在接下來的測試協議成爲第3,第5,第8,第9,第10,第11,第12,第15和第16。但是,我的測試(與上面相同,但是查看範圍在2-17之間)仍然失敗,即使日期選擇器只顯示我期待的可用日期。出於某種原因,這就是說,當他們明顯沒有時,第二和第六有鏈接(即可選日期)。錯誤CNA的例子在下面看到:

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)> 

我接過的瀏覽器在測試過程中是什麼樣子時,我愣了試驗用撬權利之前它確實與rpsec檢查的屏幕截圖。截圖可以看到下面

Screenshot of datepicker available dates

什麼奇怪的是,7月4日,其他週末如7月7日和7月17日不觸發此錯誤。如果我將第二和第六的測試註釋掉,測試通過。有誰知道爲什麼會發生這種情況?

我的工作: 水豚2.1, Rspec的護欄2.14.0

回答

0

我發現這個問題。由於第二個不是鏈接,第12個是鏈接,所以當我使用代碼時

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

它檢測到日期「12」的鏈接。同樣的情況發生在6日和16日。我將測試更改爲:

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

並解決了這個問題。