【问题标题】:How to test binary post uploaded file in rails?如何在rails中测试二进制上传文件?
【发布时间】:2015-01-24 15:46:28
【问题描述】:

我目前正在测试上传的文件是否与原始文件相同。 该 api 要求上传正文为二进制,而不是 multipart/form-data。

这是规格:

  it "uploads" do
    fixture_path = Rails.root.join("spec/fixtures/")
    fixture_file = fixture_path.join("landscape.jpg")
    file = Rack::Test::UploadedFile.new(fixture_file, "image/jpeg", :binary)
    post api_upload_upload_path, file, header
    assert_response :success
  end

当我运行规范时,它失败了:

Failures:

  1) Api::V1::UploadController uploads
     Failure/Error: post api_upload_upload_path, file, company_header
     ArgumentError:
       invalid %-encoding (These are bad characters

如何解决这个问题? 或者,有没有更好的方法来测试这种操作?

【问题讨论】:

  • 这是完整的错误吗? header 的值是多少?
  • @UriAgassi 我想通了。这是因为浏览器很难发布图像。 AngularJS 将其放入 multipart/form-data 中。

标签: ruby-on-rails ruby file-upload upload carrierwave


【解决方案1】:

我想通了。这是因为浏览器很难发布图像。 AngularJS 将其放入 multipart/form-data 中。

【讨论】:

    猜你喜欢
    • 2015-05-13
    • 2013-10-15
    • 1970-01-01
    • 2010-11-13
    • 2014-08-03
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多