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。但没有明确的解决方案

相关问题