我使用水豚1.0.0進行驗收測試,並且非常喜歡它,直到我卡在一個地方。我的問題是我用jQuery datepicker,現在我很困惑如何從datepicker中選擇日期在我的測試規範。在水豚測試中使用日期選擇器的問題
任何幫助將不勝感激。
我使用水豚1.0.0進行驗收測試,並且非常喜歡它,直到我卡在一個地方。我的問題是我用jQuery datepicker,現在我很困惑如何從datepicker中選擇日期在我的測試規範。在水豚測試中使用日期選擇器的問題
任何幫助將不勝感激。
也許這是一個好主意,因爲日期格式保存到數據庫時可能會導致問題。以下是我的做法:
page.execute_script %Q{ $('#auction_event_date').trigger("focus") } # activate datetime picker
page.execute_script %Q{ $('a.ui-datepicker-next').trigger("click") } # move one month forward
page.execute_script %Q{ $("a.ui-state-default:contains('15')").trigger("click") } # click on day 15
測試必須使用javascript驅動程序運行。
我不喜歡使用javascript。如果Rails.env.test只顯示alt字段?並直接與水豚瞄準alt。
我創建了一個輔助方法,用於生成日期選擇器輸入和隱藏字段(它有點長,我認爲沒有必要將其全部顯示出來)。在該方法中使用:
def date_picker(options={})
alt_field = Rails.env.test? ? "string" : "hidden"
input = "#{ options[:f].input options[:field], as: alt_field.to_sym, input_html: {id: "#{options[
的「爲:alt_field.to_sym」就是公開date_picker隱藏的中高音域。然後我就可以瞄準ALT現場輸入(這是一個由模型處理)的水豚用:
fill_in 'userdoc[issued_date]', with: "2013-05-02
簡單,還算乾淨,沒有的JavaScript ...
看我的例子,也許它幫助你
find("input.form-control.date-mask[ng-model='scope.values.created_at.start']").set(Date.yesterday)
這看起來像一個AngularJS解決方案。你確定這個問題適合這個問題嗎? –
無論出於何種原因page.execute_script
從上面的答案不適合我。然而,這是讓日曆開放的一種很不方便的方式。
#trigger opening of calendar
fill_in('#auction_event_date', with: "2013-05-01)
#select specific day
click_link("27")
我們也有類似的問題,我們的解決方案是剛剛輸入的日期到日期選擇器的文本字段,而不是嘗試點擊日曆彈出窗口。理由是我們不想測試jQuery代碼 - 我們正在測試我們的代碼。 /平底船! – jaydel
今天我做了同樣的事情,甚至不想嘗試使用datepicker本身。另外,我正在編寫測試工作應用程序(淘氣,我知道),我已經知道日期選擇器的功能正常。 – Tass
謝謝你們,也一樣:) – kxhitiz