1
當使用水豚,WebKit的或吵鬧鬼來測試JavaScript的行爲,我經常發現(或不幸的是,寫)看起來像這樣請問這水豚測試片?
it "saves the check box value when clicked", js: true do
visit '/somewhere'
page.should have_unchecked_field 'cool_check_box'
page.check 'cool_check_box'
visit '/somewhere'
page.should have_checked_field 'cool_check_box'
end
...這裏勾選複選框使得可以節省任何狀態的一些AJAX請求測試允許在快速重新加載後檢查它。
該測試似乎保證會剝落,因爲如果AJAX請求在第二個visit '/somewhere'
發生時沒有完成,它將在複選框處於錯誤狀態時加載。
幸運的是,這個網頁上有還,而該複選框請求完成該旋轉沿着旋轉,這樣我就可以修改,像這樣
it "saves the check box value when clicked", js: true do
visit '/somewhere'
page.should have_unchecked_field 'cool_check_box'
page.check 'cool_check_box'
# Wait for checkbox ajax to complete
page.should have_css('.spinner:not(.active)')
visit '/somewhere'
page.should have_checked_field 'cool_check_box'
end
測試,我還是有點偏執,雖然:如果page.check
但是沒有設法將微調器設置爲active
在page.should have_css
行之前,那麼該行將在請求開始之前成功。
鑑於由複選框觸發的JavaScript設置了active
類,我可以保證此測試永不剝落嗎?