7

我已經在Rails4應用程序中實現了JQuery文件上傳。當我從瀏覽器手動測試文件時,文件上傳工作正常,但我的測試失敗。如何使用RSpec和Capybara測試JQuery文件上傳

下面是我對jQuery的文件上傳規格: 需要「spec_helper」

feature 'Evidences' do 
    context "as an assessor user" do 
    let!(:assessor) { User.make! :assessor } 
    let!(:assessment) { Assessment.make! } 

    background { sign_in assessor } 

    scenario "it uploads evidence", js: true do 
     evidences_count_before_upload = assessment.evidences.count 
     visit edit_assessment_path(assessment) 

     path = "#{Rails.root}/spec/fixtures/files/sample1.doc" 
     attach_file 'evidence_file_url', path 

     expect(assessment.evidences.count).to eq(evidences_count_before_upload + 1) 
    end 
    end 
end 

我使用的RSpec 2,水豚2和騷靈此功能規格。

回答

0

雖然你怎麼不說/爲什麼你的測試失敗:這裏的一個普遍問題是,文件場是隱藏的,所以水豚將其視爲不存在。

爲我工作一個解決辦法是執行一個腳本來顯示文件場,沿着線的東西:

script = "$('input[type=file]').show();" 
page.driver.browser.execute_script(script) 

您可能還需要隱藏您的自定義上傳按鈕/標籤。另請參見:Capybara, capybara-webkit and custom file upload form

0

這是騷靈的問題。使用另一個驅動程序(例如selenium-webdriver)應該可以解決問題。看起來,文件上傳事件不會與poltergeist正確觸發。

(我有一些jQuery的AJAX文件上傳測試,同樣的問題:我的文件上傳僅測試不騷靈工作)

有一個closed issue如果有人描述相同symptomps。但沒有明確的解決方案

相關問題