Gja*_*don 7 rspec ruby-on-rails capybara poltergeist jquery-file-upload
我在Rails4应用程序中实现了一个JQuery文件上传.当我从浏览器手动测试文件上传时,文件上传工作,但我的测试失败了.
以下是我对JQuery文件上传的规范:require'pec_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
Run Code Online (Sandbox Code Playgroud)
我正在使用RSpec 2,Capybara 2和Poltergeist来实现此功能规范.
尽管您没有说明测试如何/为何失败:这里的一个常见问题是文件字段是隐藏的,因此水豚将其视为不存在。
对我有用的一个解决方案是执行一个脚本来显示文件字段,大致如下:
script = "$('input[type=file]').show();"
page.driver.browser.execute_script(script)
Run Code Online (Sandbox Code Playgroud)
您可能还需要隐藏自定义上传按钮/标签。另请参阅:Capybara、capybara-webkit 和自定义文件上传表单