我目前正在测试上传的文件是否与原始文件相同。 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
如何解决这个问题? 或者,有没有更好的方法来测试这种行为?
答案 0 :(得分:0)
我已经弄清楚了。这是因为浏览器很难发布图像。 AngularJS将其放入multipart / form-data。