ruby-on-rails - 如何使用 RSpec 和 Capybara 测试 JQuery 文件上传

标签 ruby-on-rails rspec capybara jquery-file-upload poltergeist

我已经在我的 Rails4 应用程序中实现了一个 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、Capybara 2 和 Poltergeist 来实现此功能规范。

最佳答案

我还使用带有 RSpec 和 Capybara 的 JQuery 文件上传。我正在使用 capybara-webkit 驱动程序,但这也适用于 selenium。

请参阅此答案中的示例方法和用法:https://stackoverflow.com/a/11203629/1084109

关于ruby-on-rails - 如何使用 RSpec 和 Capybara 测试 JQuery 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18398258/

相关文章:

ruby - 一些 JS 运行后,如何让 Capybara 检查可见性?

mysql - 确定分组后如何选择记录。 ( rails 3.0)

ruby-on-rails - Rails3 : How do I visit a subdomain in a steak(rspec) spec using Capybara

ruby-on-rails - 路由约束问题。为什么这不起作用,或者我如何在 Rails 3.1 中拥有多个几乎相同的约束?

unit-testing - TDD 中驱动程序和 stub 之间的区别

ruby-on-rails - 在没有 Rails 的情况下使用 ActiveModel 时的 I18n 弃用警告

ruby-on-rails-3 - Cucumber + Capybara + Selenium firefox 打开 example.com 而不是我的应用

ruby - 使用 chromedriver 运行 capybara 测试时以隐身模式启动 Chrome

ruby-on-rails - 在 ruby​​ 中解析 json 以进行排序、过滤等

ruby-on-rails - 检查环境tire.rb文件